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,得到了同样的结果!-.-
当您通过以下方式调用函数时:
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
.此外,分配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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
183 次 |
最近记录: |