初学者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不喜欢它。我做错了什么?
答案 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文件中。
试试这个:
cd(prefdir)
。MLintFailureFiles
,然后删除文件名MulAnd.m
)。MLintFailureFiles
。现在再试一次MulAnd
。