【问题标题】:Octave: How to correctly make string as a condition?Octave:如何正确地将字符串作为条件?
【发布时间】:2021-09-03 15:09:30
【问题描述】:

我是第一次尝试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 时运行输入命令?

谁能告诉我应该怎么做?

【问题讨论】:

    标签: function if-statement octave octave-gui


    【解决方案1】:

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

    input 函数解析用户键入的内容,因此键入 3 将生成数字 3,而不是字符串 "3"。如果您像这样添加第二个输入参数:input("prompt","s"),那么它将不会解析输入,并返回一个字符串。然后用户将能够键入no。见the docs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-15
      • 1970-01-01
      • 1970-01-01
      • 2020-10-08
      • 1970-01-01
      相关资源
      最近更新 更多