在matlab中不能返回零值

时间:2013-11-05 18:03:07

标签: c matlab return-value

我是matlab的新手。如果e的值为NaN,我想返回0。以下是我的代码:

      if(e!='NaN')
        fprintf(1,'The final coefficiant is: %f \n',e);
          else
            return 0;
       end

它向我展示

  

意外的MATLAB运算符。

有人可以告诉我为什么吗?我该怎么写呢?

2 个答案:

答案 0 :(得分:5)

另外!=不是有效的MATLAB运算符。那是你的错误。  使用~=

永远都不会有任何东西== NaN。

甚至不是NaN。使用isnan

function out = my_fun(e)      
if ~isnan(e)
    fprintf('The final coefficiant is: %f \n',e);
    out = 1; % or whatever
else
    out = 0;
end

答案 1 :(得分:1)

Matlab函数不会以与常规函数相同的方式返回值。看看这个例子:

function success = myfunc()
e = rand(); % Compute e in some way
  if ~isnan(e)
    fprintf(1,'The final coefficiant is: %f \n',e);
    success = true;
  else         
    success = false;
  end

return关键字将退出该函数,但用于传递返回值。您可以使用isnan检查NaN。