我是第一次尝试if
测试,实际上功能也是如此。
脚本如下:
function trial()
I = input("f INPUT > Manually input frequency value? (yes/no):");
if I = "yes";
f = input("Please input the frequency value : n")
elseif I = "no";
f = randi([100 1000],5,5)
endif
O = 2*pi*f;
fprintf("%.2f n",O);
plot(f,O);
xlabel("Frequency");
ylabel("Angular Frequency");
end
f INPUT > Manually input frequency value? (yes/no):"no"
Please input the frequency value :
有两件事我不明白:
- 为什么我必须用引号来写条件?(即
"yes"
不是yes
或"no"
不是no
)。 - 为什么
'no'
条件运行输入命令,而它应该是randi
?
谁能告诉我应该怎么做?
I = "yes"
分配字符串"yes"到变量I
。要进行比较,请像这样使用==
:I == "yes"
。但是,这种比较只在两个字符串长度相同的情况下才会起作用,并且将返回一个数组,而不是单个相等值。使用strcmp
比较字符串:if strcmp(I, "yes")
.
input
函数解析用户类型,因此输入3
将得到数字3
,而不是字符串"3"
。如果您添加像这样的第二个输入参数:input("prompt","s")
,那么它将不会解析输入,并返回一个字符串。然后用户就可以输入no
。参考文档