如果声明MATLAB示例问题

时间:2016-05-02 14:31:05

标签: matlab if-statement output matlab-compiler

我正在尝试在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!

如下: enter image description here

怎么了? 我弄清楚了吗? 是因为outvar = 1?我试着把它变成0,得到了同样的结果! -.-

1 个答案:

答案 0 :(得分:5)

以下列方式调用函数时:

DEMO 0

这隐含地将0作为字符串传递:'0'。当您在字符串'0'0之间执行比较时,'0'会转换为它的ASCII代码(32),并且它似乎总是大于{{1 }}

相反,您需要使用括号显式调用函数并传递数字。

0

作为旁注,您似乎正在分配给DEMO(0) 但是函数的输出参数实际上是outvar。此外,无论条件,您都会在底部output分配outvar。如果要为每个条件设置不同的输出值,则需要在中设置输出值 1感兴趣的语句。

可能是这样的:

if