2016-05-07 16 views
0

Ich habe die folgende Matrix:Hinzufügen von Zeilen/Spalten bestehenden Matrix

a = [16 456 22 85 93;11 78 310 62 36;1 66 23 67 405]; 

Wenn ich eine Reihe wäre es a = [a; randi(99, 1, 5)]; sein hinzufügen wollte? Und was, wenn ich auch eine Spalte hinzufügen möchte, wäre es a = [a, randi(99, 4, 1)];?

Wie würde ich speziell zwischen der ersten/zweiten Zeile oder der ersten/zweiten Spalte hinzufügen?

Antwort

1

a = [16 456 22 85 93;11 78 310 62 36;1 66 23 67 405]; eine Matrix 3-by-5 ​​ist. Wenn Sie also eine Zeile hinzufügen möchten, müssen Sie eine 5-stellige Zeile hinzufügen, d. H. a = [a; randi(99, 1, 5)]; ist korrekt. Für eine Spalte wäre es a = [a, randi(99, 3, 1)];, wo ich Ihre 4 durch eine 3 ersetzt, um es auf der ursprünglichen Matrix zu handeln. Besser wäre allerdings implizit Größen verwenden sein, so dass Sie erhöhen müssen Spalten nicht manuell die Anzahl der Zeilen/jedes Mal: ​​

a = [a; randi(99,1,size(a,2))]; %// adding a row 
a = [a, randi(99,size(a,1),1)]; %// adding a column 

Wenn Sie Ihre neue Zeile zwischen den ersten und zweiten Zeilen einzufügen:

a = [a(1,:); randi(99,1,size(a,2)); a(2:end,:)]; 
1

Erwägen

a = [16 456 22 85 93;11 78 310 62 36;1 66 23 67 405]; 

vor ith Zeile eingeben:

a = [ a(1:i-1,:) ; randi(99,1,5) ; a(i:end,:) ]; 

eingeben, bevor ith Säule:

a = [ a(:,1:i-1) , randi(99,4,1) , a(:,i:end) ]; 
Verwandte Themen