问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

varargin在matlab中怎样用?

发布网友 发布时间:2022-06-15 01:09

我来回答

1个回答

热心网友 时间:2023-10-22 07:56

在写《用Matlab演示Parzen窗法》的时候,不知道怎样在m中设计可变参数函数可以阅读一些m自带函数源码,只要将最后一个参数设置为varargin,就可以实现。

例如写了一个函数:function test(varargin)

那么在这个函数里,varargin就是一个cell数组,它包含了用户输入的参数。下面是一个例子:function test(varargin)

disp(['nargin is ' num2str(nargin)])

for v=1:numel(varargin)

disp(['varargin{' num2str(v) '} class is ' class(varargin{v})])

en

完全就是使用cell数组的方法来处理用户输入的个数不定的参数,如果我们这样调用这个函数

>> test()

会得到结果:

nargin is 0

表示用户输入参数个数为0个,就是没有输入参数。

如果这样调用:

>> test(1,'a',uint8(32),'123456');

会得到结果:

nargin is 4

varargin{1} class is double

varargin{2} class is char

varargin{3} class is uint8

varargin{4} class is char

表示用户输入了4个参数,第一个是double类型,第二个是char类型,第三个是uint8类型,第四个也是char类型。

也就是说,只要把函数的参数列表的最后一个参数写成varargin,就可以在函数内部以访问cell数组的方式来获取可变参数的信息。

有了这个varargin,我们就可以改写原来那个Parzen函数了。原来的Parzen函数的最后一个参数是函数句柄,用来传入窗函数,但是也可不指定窗函数,那么Parzen会自动使用正态窗,但是那时不知道使用varargin,于是在使用默认的正态窗时,最后一个参数依然得指定,输入一个[ ]。这样也凑合,能用,但毕竟不优雅。

做最简单的雷达信号仿真,需要使用Parzen窗法估计接收信号的概率密度函数,以使用贝叶斯来确定门限。趁此机会把Parzen函数改写了,如下:

function p=Parzen(xi,x,h1,varargin)

%xi为样本,x为概率密度函数的自变量的取值,%h1为样本数为1时的窗宽,%最后一个参数为窗函数句柄,%不指定则使用正态窗,%返回x对应的概率密度函数值。

n=numel(varargin)

if 0==n

%若没有指定窗的类型,就使用正态窗函数

f=@(u)(1/sqrt(2*pi))*exp(-0.5*u.^2)

elseif 1==n

if isa(varargin{1},'function_handle')

f=varargin{1};

else

disp('The last param must be function handle');

p=[];

return;

end

else

disp('too many param');

p=[];

return;

end;

N=size(xi,2);

hn=h1/sqrt(N);

[X Xi]=meshgrid(x,xi);

p=sum(f((X-Xi)/hn)/hn)/N

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
厂口银杏园地址在哪里? 昆明银杏大道在什么地方 昆明哪些地方有银杏树 从二月河“帝王三部曲”看90年代的文学场(一) 二月河《落霞三部曲》读书札记 安装织梦CMS到新浪SAE,这数据库主机,用户都是什么?这个是安装在新浪SE... SAE上的mySql初始化了怎么用啊,java怎么连上去啊,地址,端口号,账号... 金鱼尾部出现血丝,怎么办? 金鱼尾鳍上有血丝,急躁不安是什么病 请问?家里养的金鱼,一夜过来,金鱼尾巴上面都有红色血丝是怎么回事... 护肤品里的抗坏血酸会光感化吗 记者证怎么一查就是验证码错误啊 帮我解释下网络记者有没有采访权?那些媒体有记者证呢?怎么办理呢? cisco硬件防火墙找不到启动文件 请教一道小学英语选择题,应该选择哪个答案?这是考名词的可数不可数还是要理解题意? 动漫《斗罗大陆》当中,比比东大战唐三,为什么不使出实力对付唐三呢? 莎士比亚四大悲剧中哈姆雷特里最经典的一句台词:生存还是毁灭这是个问题”的理解 我下载的企业微信怎么是厦门嗨推信息技术有限公司? 秦始皇兵马俑,两排俑之间的土堆是做什么用的? 秦始皇陵附近方便停车吗?有专门的停车场吗?还有华清池和临潼博物馆呢?在线等着,谢谢!!帮忙吧~~ 大学学什么专业好 最好就业的专业 吉利远景09款换汽油泵要拆油箱吗? 09款吉利远景换汽油泵要拆油箱吗? 吉利远景机油泵多少钱 吉利远景换燃油泵光换芯子是不是不行,是不是要换总成了 更换远景汽油泵 吉利远景自动熄火,更换油泵总成仍然存在此问题 吉利远景汽油泵多少钱 吉利远景汽油泵总成原厂件多少钱 吉利远景x 6油泵总成怎么拆装? 关于matlab的varargin一段程序没看懂,请高手解释一下? matlab中varargin{2}(:,3)是什么意思 matlab gui openingfcn中的varargin参数的作用 我的理解对还是错? 不同怎么迁移聊天记录? 种的相关词语 求高一英语单词学习软件 英语翻译:试着和别人交流想法,你会发现还是有很多人理解你的。 台州哪里卖寿仙谷灵芝破壁孢子粉 台州市亨瑞工艺品有限公司怎么样? 台州到安吉多远多少公里:距离358公里 在宁波什么地方有鉴别灵芝的 白液的白液药液蒸煮的机理 大戟科植物白色液汁液入眼怎么处理 癞蛤蟆身上的白色浆液沾到手上然后长了一些小肉疙瘩怎么办? 下列离子方程式正确的是(  )A.向漂白液溶液中通入少量SO2:3ClO-+SO2+H2O═SO42-+Cl-+2HClOB.2-溴 杭州应届生软件测试 工资水平大概多少? 喜欢的组词有什么 喜欢组词。 喜欢什么四字组词