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