【问题标题】:How to add limited row to specific row in Matlab?如何在 Matlab 中将有限行添加到特定行?
【发布时间】:2013-09-26 19:27:34
【问题描述】:

我有两个矩阵 A 是 2x9,B 是 6x3,

A= 零(2,9)

A =

 0     0     0     0     0     0     0     0     0
 0     0     0     0     0     0     0     0     0

B=round(10*rand(6,3))

B =

 7     6     9
 6     7     8
 4     1     7
 1     1     1
 8     5     1
 3     5     1

通过使用这些代码,我想将矩阵 B 的前三行添加到 A 的第一行,然后使用这些代码将矩阵 B 的后三行添加到矩阵 A 的第二行 :::

for i=1:6

        if i<=3     

            x=x(y,:)
        else 

       end           
    end 

我试过了,不知道里面if条件如何

【问题讨论】:

    标签: matlab matrix indexing


    【解决方案1】:
    j=1; k=1;   
    for i=1:6        % loop over rows of B
      if (j > 9)     % reset your index to point to the first entry of the next row of A
        k=k+1;
        j=1;
      end
      A(k,j:j+2)=A(k,j:j+2)+B(i,:);
      j=j+3;  
    end
    

    如果矩阵的大小发生变化,您必须分别调整条件和步幅。这只是一个快速的解决方案。我想知道是否有更优雅的方法来解决这个问题 - 在使用 Matlab 时总是有...

    【讨论】:

    • 正是我想要的,感谢您的帮助,亲爱的 el_tenedor
    • 这个比较短我发现它 A = reshape(B',9,[])'
    猜你喜欢
    • 2016-10-12
    • 2018-02-14
    • 1970-01-01
    • 2012-02-14
    • 2022-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多