2013-12-15 126 views
7

matlabでどのように対話式に行を追加できますか?Matlab - 行列を行に繰り返し挿入/追加する

m = []; 

と私はforループを実行したとき、私は行列に挿入する必要がある行を取得:たとえば

は私が空行列を持って言うことができます。例えば

for i=1:5 
    row = v - x; % for example getting 1 2 3 
    % m.append(row)? 
end 

ので、それはのようなものになるはず挿入した後:あなたは、単に配列/行列に行を追加することができ、ほとんどのプログラミング言語では

m = [ 
    1 2 3 
    3 2 1 
    1 2 3 
    4 3 2 
    1 1 1 
] 

を。しかし、私はそれをmatlabでやるのは難しいと思う。

答えて

16

m = [m ; new_row];すでに行番号が分かっている場合は、m=zeros(row_num,column_num);を定義してループに入れてください。m(i,:) = new_row;

+0

どういたしまして! – lennon310

2

ちょうどそれは、メモリの再割り当てを必要とするようなマトリックスを拡張することは、低速であることを考慮してください

m = [m; row]; 

を使用しています。それは、そのフルサイズに行列を事前に割り当てる

m = NaN(numRows,numCols); 

、その後、各繰り返しで行の値を記入すると良いでしょう:

m(ii,:) = row; 

デフォルトそれによるので、また、それは、変数名としてnot to usei方が良いでしょう虚数単位を表します(そのため、ここでは反復インデックスとしてiiを使用しています)。

0

値を作成して追加するには、これを行い、自分のような完全な行列を作ることができます。 ここで行= 5、次に列= 3、したがって2つのforループ。

あなたがM(i, j)場所に値を入れて、それはあなたが与えられた同じ値を入力した場合、出力はあなたのようになります証明可能マトリックスに

for i=1:5 
    for j=1:3 
     M(i, j) = input('Enter a value = ') 
    end 
    fprintf('Row %d inserted successfully\n', i) 
end 

disp('Full Matrix is = ') 
disp(M) 

を値を挿入します、

Full Matrix is = 
1 2 3 
3 2 1 
1 2 3 
4 3 2 
1 1 1 
関連する問題