0

我是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

有人可以告诉我应该怎么做吗?

4

1 回答 1

0

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

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

于 2021-09-03T16:06:27.500 回答