【问题标题】:Looping with step 10 in matlab在matlab中循环第10步
【发布时间】:2014-02-19 20:05:21
【问题描述】:

我运行下面的代码来让矩阵 a 填充从 0 到 2062630 的值,或者使用 step 来填充。 a(1) 应该是 0,a(2) 10 等等,或者只是 a 应该包含 0,10,20,30,40,......,2062630。但是插入的代码在矩阵 a 的每个元素中给出了值为 2062630 的矩阵。

for i=1:length(x)
for j=0:10:2062637
a(i,:)=j;
end
end

【问题讨论】:

    标签: matlab loops for-loop matrix


    【解决方案1】:

    我想你不明白colon 运算符是如何工作的,它已经生成了你想要的矩阵。

    a=0:10:2062637
    

    【讨论】:

    • 我需要一个 410874x1 的矩阵?
    • 又一个神奇的数字突然出现。为什么410874?矩阵应该如何填充。也许举个小例子。
    • 我有 410874 帧,每个帧我想在 0 到 2062637 之间的时间限制之间进行映射,每帧长度为 10 毫秒。
    • @chris:这不是你的问题所说的。在发布后完全改变问题是不好的形式。如果您有重要的细节,它应该在问题中。你的问题本质上是插值之一。
    • 好吧,我的错。我想将不得不在一个新问题中解释整个事情。
    【解决方案2】:

    不清楚您希望代码生成什么,但您可能不需要任何for 循环。相反,您可以使用repmat:

    a = repmat(0:10:2062637,[length(x) 1]);
    size(a)
    

    这将创建一个矩阵a,其中包含length(x) 行,每一行都是0:10:2062637。您也可能正在尝试创建此转置:

    a = repmat((0:10:2062637).',[1 length(x)]);
    size(a)
    

    【讨论】:

      【解决方案3】:

      我不确定你想要什么,如果你想要一个向量还是一个矩阵?我也不知道x是什么。

      你可以试试:

      count=1; 
      for j=0:10:2062637 
        a(count)=j; 
        count=count+1; 
      end
      

      返回的内容与@Daniel 提出的解决方案完全相同:

      a=0:10:2062637
      

      【讨论】:

        猜你喜欢
        • 2013-06-19
        • 1970-01-01
        • 2023-03-05
        • 1970-01-01
        • 1970-01-01
        • 2017-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多