【问题标题】:How to count in nested if statement in matlab?如何计算matlab中的嵌套if语句?
【发布时间】:2015-05-14 17:56:04
【问题描述】:

我想增加计数并在消息框中显示该值。我正在使用嵌套的 if 语句。这是我的代码

if sum( abs( f1(:) - f2(:))) == 0.0
       i = i + 1;
elseif sum(abs(f2(:) - f3(:))) == 0.0
       i = i+ 1;
elseif sum(abs(f3(:) - f4(:))) == 0.0
       i = i + 1;
else 
       i = 1;   
end

h = msgbox('Perfect  = %d',i);

这里f1,f2,f3f4包含两个浮动图像之间的差异。我在 if 语句之前声明了i = 0;。我仍然无法在输出中看到消息框。我也尝试了disp() 函数,但它只显示else 部分,即i = 1

有什么建议吗?

提前致谢!

【问题讨论】:

  • 可能是浮点精度问题 - stackoverflow.com/questions/686439/…
  • @Divakar 我使用i 仅用于计数。我猜浮动不会影响。
  • .@Divakar 指的是与0 的总和的完全相等。如果f* 向量是双精度的,那么在浮点中通常很难完全等同于0

标签: matlab if-statement count


【解决方案1】:

决策树的每个互斥分支是i=i+1i=1不管是哪一个,如果i之前是0,那么后面就是1。

我不明白你想要什么,但是编写的代码检查了几个条件并且无论如何都会做同样的事情,这是不对的。

编辑:试试这个

if sum( abs( f1(:) - f2(:))) == 0.0
   i = i + 1;
end
if sum(abs(f2(:) - f3(:))) == 0.0
   i = i+ 1;
end
if sum(abs(f3(:) - f4(:))) == 0.0
   i = i + 1;
end

h = msgbox('Perfect  = %d',i);

这将为您提供从零到三的匹配数。现在所有条件都被独立检查了,第二个条件只有在第一个条件为假时才会被检查。

【讨论】:

  • 实际上我需要显示输入完美的情况和不匹配的情况。所以为此我使用计数。有没有其他方法可以知道完美和不完美的计数。我是否必须更改 if 语句或其他内容?
猜你喜欢
  • 2014-10-17
  • 1970-01-01
  • 1970-01-01
  • 2012-06-01
  • 2012-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多