查看: 4089|回复: 2|关注: 0

[已解决] if语句、与或基础咨询

[复制链接]

新手

7 麦片

财富积分


050


5

主题

13

帖子

0

最佳答案
% 默认停止条件,这是单轮迭代停止条件
function [stop,envmoy,s] = stop_sifting(m,t,sd,sd2,tol,INTERP,MODE_COMPLEX,ndirs)
try
  [envmoy,nem,nzm,amp] = mean_and_amplitude(m,t,INTERP,MODE_COMPLEX,ndirs);
  sx = abs(envmoy)./amp;
  s = mean(sx);
  stop = ~((mean(sx > sd) > tol | any(sx > sd2)) & (all(nem > 2)));  % 停止准则(增加了极值点个数大于2)
  if ~MODE_COMPLEX
    stop = stop && ~(abs(nzm-nem)>1);        % 对于实信号,要求极值点和过零点的个数相差1
  end
catch
  stop = 1;
  envmoy = zeros(1,length(m));
  s = NaN;
end
end
这是EMD中的一段程序;
尝试执行在try后面的语句,如果出错执行catch后面的语句;
标红的句子没有看懂,
01.if~mode_complex 是什么意思?
02.如果不是复数形式,那么stop&&~是什么意思?
03.是不是如果执行if里边的句子,后边的catch就不执行了?

求大侠出手帮忙


回复主题 已获打赏: 0 积分

举报

MATLAB 基础讨论
版块优秀回答者

入门

326 麦片

财富积分


50500


9

主题

914

帖子

69

最佳答案
  • 关注者: 25
发表于 2014-11-15 13:23:28 | 显示全部楼层 |此回复为最佳答案
01.if~mode_complex 是什么意思?
~表示非,如果~1 = 0,~0 = 1,~true=false, ....
02.如果不是复数形式,那么stop&&~是什么意思?
&&逻辑与
1&0 = 1 1&1 =1 0&0 = 0 ....
~在01里面解释过了
03.是不是如果执行if里边的句子,后边的catch就不执行了?
catch只有try与catch之间代码出错后,才能执行catch代码段,否则永远不执行
关注新浪微博:书生一文; 微信:matlabfans; 获取MATLAB混编,文件与数据接口,并行技术图书答疑和最新资料
回复此楼 已获打赏: 0 积分

举报

新手

7 麦片

财富积分


050


5

主题

13

帖子

0

最佳答案
 楼主| 发表于 2014-11-15 13:35:15 | 显示全部楼层
刘维 发表于 2014-11-15 13:23
01.if~mode_complex 是什么意思?
~表示非,如果~1 = 0,~0 = 1,~true=false, ....
02.如果不是复数形式,那 ...

该怎么表达我的谢意!
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表