-1

A は 2x9、B は 6x3 の 2 つの行列があります。

A=ゼロ(2,9)

A =

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

B=ラウンド(10*ランド(6,3))

B =

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

これらのコードを使用して、行列 B の最初の 3 行を A の最初の行に追加し、行列 B の 2 番目の 3 行を行列 A の 2 行目に追加したい :::

for i=1:6

        if i<=3     

            x=x(y,:)
        else 

       end           
    end 

私は試してみましたが、if条件の内部がわかりません

4

1 に答える 1

0
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を使用する場合は常にあります...

于 2013-09-26T19:53:52.503 に答える