if 语句 MATLAB 示例问题
Posted
技术标签:
【中文标题】if 语句 MATLAB 示例问题【英文标题】:If statement MATLAB example issue 【发布时间】:2016-05-02 14:31:04 【问题描述】:我正在尝试在 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,得到了同样的结果! -.-
【问题讨论】:
是的,它给了我不到零 但是为什么ans总是一个!是因为outvar吗? @Mariah,是的,这就是原因。 【参考方案1】:当你通过以下方式调用函数时:
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
【讨论】:
以上是关于if 语句 MATLAB 示例问题的主要内容,如果未能解决你的问题,请参考以下文章