如果声明MATLAB示例问题

Mar*_*iah 1 matlab if-statement matlab-compiler output

我正在尝试在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;
Run Code Online (Sandbox Code Playgroud)

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

在这里: 在此输入图像描述

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

Sue*_*ver 5

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

DEMO 0
Run Code Online (Sandbox Code Playgroud)

这隐含地传递0字符串:'0'.当您执行字符串之间的比较'0'0,将'0'被转换成它的ASCII码(32),它总是显得大于0.

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

DEMO(0)
Run Code Online (Sandbox Code Playgroud)

作为旁注,您似乎正在分配outvar但实际上您的函数的输出参数output.此外,分配outvar1在底部不管条件如何的.如果要为每个条件设置不同的输出值,则需要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
Run Code Online (Sandbox Code Playgroud)