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

在Matlab中“for”循环的“to”中使用变量,matlab,for-loop,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

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视为一个字符,而不是一个变量


附言:我对Matlab是新手,我在网上搜索了很多,但没有找到解决这个问题的方法。请提供帮助。

错误消息看起来非常可读。这不是有效的Matlab语法。您可以编写一个由n个repititon组成的for循环,如下所示

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

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

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

for j=1:n
  %body
end

我看不出表中有“要”这个词。因此,上面的for循环语法不是有效的Matlab语法。另一个要考虑的是N被解释为一个字符而不是一个数字。我在看有关for循环语法的MuPad文档。这是正确的,但没有解决OP关于使用变量的问题。如果您添加了一个关于使用此语法的变量的语句,这将是迄今为止最正确的答案。to不是Matlab for循环语法的一部分。你应该试试j=1:n。Matlab基本上用于迭代向量的元素,例如,你可以对j=[1 7 3 9 2 0]或v=[1 7 3 9 2 0]进行迭代;使j=v在任意集合上迭代。语法1:n只是创建向量[1,2,…,n-1,n]n被视为字符的简写形式,因为to被视为函数。如果语法正确,n将不再被视为字符。