我正在尝试在MATLAB 7.6.0(R2008a)版本上运行这个简单的if语句MATLAB代码。
*我在M-File中输入了这个:
function output = DEMO(input)
if input > 0
fprintf('Greater than 0')
elseif input < 0
fprintf('Less then 0')
else
fprintf('Equals 0')
end
outvar = 1;
*试图在命令窗口中实现它: 每当我输入一个数字时,它总是给我大于0!
怎么了? 我弄清楚了吗? 是因为outvar = 1?我试着把它变成0,得到了同样的结果! -.-
答案 0 :(得分:5)
以下列方式调用函数时:
DEMO 0
这隐含地将0
作为字符串传递:'0'
。当您在字符串'0'
和0
之间执行比较时,'0'
会转换为它的ASCII代码(32
),并且它似乎总是大于{{1 }}
相反,您需要使用括号显式调用函数并传递数字。
0
作为旁注,您似乎正在分配给DEMO(0)
但是函数的输出参数实际上是outvar
。此外,无论条件,您都会在底部的output
分配outvar
。如果要为每个条件设置不同的输出值,则需要在中设置输出值 1
感兴趣的语句。
可能是这样的:
if