Octave:如何正确地将字符串作为条件?



我是第一次尝试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 :

有两件事我不明白:

  1. 为什么我必须用引号来写条件?(即"yes"不是yes"no"不是no)。
  2. 为什么'no'条件运行输入命令,而它应该是randi?

谁能告诉我应该怎么做?

I = "yes"分配字符串"yes"到变量I。要进行比较,请像这样使用==:I == "yes"。但是,这种比较只在两个字符串长度相同的情况下才会起作用,并且将返回一个数组,而不是单个相等值。使用strcmp比较字符串:if strcmp(I, "yes").

input函数解析用户类型,因此输入3将得到数字3,而不是字符串"3"。如果您添加像这样的第二个输入参数:input("prompt","s"),那么它将不会解析输入,并返回一个字符串。然后用户就可以输入no。参考文档

相关内容

  • 没有找到相关文章

最新更新