emd_visu显示的问题?
function varargout = emd_visu(x,t,imf,i);if sum(size(t)>1)>1
imf = t;
t =1:length(x);
if(nargin==3)
fignum = i;
end
else
if(nargin==4)
fignum = i;
end
end
这是这个函数开头一部分,不明白为什么第二行出现
imf = t;
t =1:length(x);
函数输入里第一个X是原信号,第二个t表示时间啊有的程序也直接写成1:length(x);
,第三个是emd的imf才对,为什么显示程序开头把t付给了imf,
是我下的程序有问题还是怎么回事? if sum(size(t)>1)>1
如果为真,说明函数的第二个参数是矩阵,如果是矩阵的话,说明使用函数的人第二个参数输入的不是时间参数而是IMF这个参数,缺省输入了时间参数,所以才会有后面的
t =1:length(x);
if(nargin==3)
fignum = i;
end
好好看看matlab可变输入输出参数的函数吧
是这么回事,当时好像理解错误了,imf至少都是2维的,而时间函数却始终是一维的,所以size(t)>1时间矩阵式不满足的。只有imf会满足 回复 1 # WJzhengdong 的帖子
你好,请 if(nargin==4)这个是干什么的啊?你是用HHT做什么的啊 可以交流一下吗 谢谢
fignum = i; if 括号里表示输入参数为4个时,i是第四个,就把i付给fignum。它是确定显示图像个数的 回复 5 # WJzhengdong 的帖子
为什么确定图像个数?那不常用的第四个图像做什么的? 回复 6 # aishuishou 的帖子
页:
[1]