在Matlab中用矢量作为for循环的范围

在Matlab中用矢量作为for循环的范围,matlab,Matlab,我想知道在Matlab中使用向量作为for循环范围的规则是什么 比如说, range = [0.1:0.01:2]'; % wrong range = [0.1:0.01:2]; % correct for i = range i end 为什么range是列向量,而 如果范围是行向量,它会吗 将i=range解释为i取range的每个值, 或者i被分配了向量范围 感谢~发件人: 值具有以下形式之一: valArray 从数组的后续列创建列向量索引 valArray每次迭代。例如,在第一次迭

我想知道在Matlab中使用向量作为for循环范围的规则是什么

比如说,

range = [0.1:0.01:2]'; % wrong
range = [0.1:0.01:2]; % correct

for i = range
i
end
  • 为什么
    range
    是列向量,而 如果
    范围
    是行向量,它会吗
  • i=range
    解释为
    i
    range
    的每个值, 或者
    i
    被分配了向量
    范围
  • 感谢~

    发件人:

    <代码>值具有以下形式之一:

    valArray

    从数组的后续列创建列向量索引
    valArray
    每次迭代。例如,在第一次迭代中,
    index=valArray(:,1)

  • 是那样的,因为是那样的。我认为对此没有任何深刻的解释
  • 如果您进行实验,您会发现,一旦您完成了一个赋值,例如
    range=[0.1:0.01:2]
    ,那么名为
    range
    的变量就是一个包含该范围内的值的行向量。您的循环将正常工作。就像它开始的时候一样

    for i=[0.1 0.11 0.12…]


  • 更一般地说,
    range
    可以是一个矩阵,循环变量在其列上循环

    range = rand(3,3);
    for col = range
    col
    end
    
    col =
          0.86341
          0.11625
          0.20319
    col =
          0.59721
         0.098357
           0.8356
    col =
          0.89578
          0.46217
          0.93585
    
    因此,如果
    range
    是一个行向量,它将在其值上循环。但是,如果
    range
    是一个列向量,它将循环该列作为其值

    range = rand(3,3);
    for col = range
    col
    end
    
    col =
          0.86341
          0.11625
          0.20319
    col =
          0.59721
         0.098357
           0.8356
    col =
          0.89578
          0.46217
          0.93585