在Matlab中使用'for'循环的'to'中的变量

时间:2014-08-15 08:02:39

标签: matlab for-loop

Matlab中for循环的一般语法是:

  for j = 1 to 5
    %body
  end

我希望有一个变量,其值在运行时计算,具体取决于用于控制for循环运行次数的用户输入。

所以我希望:

m = input('Some Message');
n = ....% Some Calculations using user input 'm'
for j = 1 to n
  %body
end

我尝试了这个,但收到了错误 -

Undefined function 'to' for input arguments of type 'char'.

Matlab将变量n视为字符而不是变量。

P.S:我是Matlab的新手,我在网上搜索了很多,但无法得到解决方案。请帮忙。

2 个答案:

答案 0 :(得分:4)

错误消息似乎非常易读。这不是有效的Matlab语法。你会像这样编写一个n循环的for循环

m = input('Some Message: ');
if strcmp(m, 'foo')
    n = 7;
else
    n = 5;
end

for j = 1:n
    fprintf('%d\n', j);
end

答案 1 :(得分:3)

实际上,您是否尝试过这种语法:

for j=1:n
  %body
end

我在docs中没有看到“to”这个词。所以你上面的for循环语法不是有效的Matlab语法。另一件需要考虑的事情是,n被解释为一个字符,而不是一个数字。