If 语句 MATLAB 示例问题

If statement MATLAB example issue

我正在尝试 运行 MATLAB 7.6.0 (R2008a) 版本上的这个简单的 if 语句 MATLAB 代码。

*我在 M 文件中输入了这个:

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;

*试图在命令window中实现它: 每当我输入一个数字时,它总是给我大于 0!

如这里:

怎么了? 我想不通? 是因为 outvar = 1 吗?我试着让它变成0,得到了同样的结果! -.-

当您按以下方式调用函数时:

DEMO 0

这将 0 作为 字符串 隐式传递:'0'。当您在字符串 '0'0 之间进行比较时,'0' 被转换为它的 ASCII 代码 (32),并且它总是看起来大于 0.

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

DEMO(0)

作为旁注,您似乎正在分配给 outvar,但您的函数的输出参数实际上是 output。此外,您将 outvar 分配给底部 1,而不考虑条件 。如果您希望每个条件都有不同的输出值,则需要在 感兴趣的 if 语句中设置输出值

可能是这样的:

function output = DEMO(input)
    if input > 0
       fprintf('Greater than 0')
       output = 1;
    elseif input < 0
       fprintf('Less then 0')
       output = -1;
    else
       fprintf('Equals 0')
       output = 0;
    end
end