我是matlab的新手。如果e
的值为NaN
,我想返回0。以下是我的代码:
if(e!='NaN')
fprintf(1,'The final coefficiant is: %f \n',e);
else
return 0;
end
它向我展示
意外的MATLAB运算符。
有人可以告诉我为什么吗?我该怎么写呢?
答案 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。