函数定义获取解析器错误(MATLAB)

时间:2013-09-23 20:42:27

标签: matlab function

初学者matlab用户在这里。 我正在尝试编写一个乘以a和b的函数,如果a和b为正,则返回乘积;如果任何一个为负,则返回-abs(a * b)。这就是我所拥有的。

function y = MulAnd(a,b)
%MULAND Summary of this function goes here
%   Detailed explanation goes here
if(a<0||b<0)
    y = -(abs(a*b));
else
    y = a*b;
end
end

Matlab不喜欢它。我做错了什么?

2 个答案:

答案 0 :(得分:1)

您可以尝试以下适用于标量或向量的文件

function y = MulAnd(a,b)
%MULAND Summary of this function goes here
%   Detailed explanation goes here
y = a.*b;
negative = a<0 | b<0;
y(negative) = -abs(y(negative));
end

答案 1 :(得分:1)

我认为您的代码很好,我认为@OlegKomarov的评论包含答案。

当MATLAB由于MATLAB代码分析器问题而意外崩溃时,它会将导致问题的文件名添加到文件MLintFailureFiles。这会导致红色指示器在以后打开时显示在MATLAB文件中。

试试这个:

  1. 输入cd(prefdir)
  2. 打开MLintFailureFiles,然后删除文件名MulAnd.m)。
  3. 保存并关闭MLintFailureFiles
  4. 现在再试一次MulAnd