How can I insert row into matrix without deleting its values?

96 visualizzazioni (ultimi 30 giorni)
Hello all! I want to insert row into the matrix, for example I have a=[1,2;4,9;11,12;3,6], and b=[0,0] ; now I want to insert b into a in the third position like this a=[1,2;4,9;0,0;11,12;3,6]. Any ideas?
  2 Commenti
Hikaru
Hikaru il 28 Gen 2015
Is there a condition to be satisfied before performing this operation? Is it always going to be the 3rd position?

Accedi per commentare.

Risposta accettata

Matz Johansson Bergström
Matz Johansson Bergström il 28 Gen 2015
Modificato: Matz Johansson Bergström il 28 Gen 2015
The only way I know of is to create a new matrix consisting of A and the row and then append the three matrices together, for instance
A = [1,1; 2,2; 3,3];
b = [6,7];
k = 0; %row position, can be 0,1,2 or 3 in this case
A = [A(1:k,:); b; A(k+1:end,:)]
  6 Commenti

Accedi per commentare.

Più risposte (2)

Stalin Samuel
Stalin Samuel il 28 Gen 2015
a=[1,2;4,9;11,12;3,6],
b=[0,0] ;
row_no=3 %%where wants to insert
a(1:row_no-1,:) = a(1:row_no-1,:)
tp =a(row_no:end,:)
a(row_no,:)=b
a(row_no+1:end+1,:) =tp
  1 Commento
Riyadh Muttaleb
Riyadh Muttaleb il 14 Mar 2017
Hi Stalin,
I would like to insert rows by using loop, your help would be so appreciated,
Riyadh

Accedi per commentare.


Anil Kamat
Anil Kamat il 1 Ott 2021
Modificato: Anil Kamat il 1 Ott 2021
Just in case the insert position is variable.
emt_lpfc=[]; emt_rpfc = []; emt_lpmc =[]; emt_rpmc =[]; emt_sma=[];
A = rand(3,3)
emt_lpfc = 1;
emt_sma = 5;
emt_reg = [emt_lpfc emt_rpfc emt_lpmc emt_rpmc emt_sma];
temp = [];
if isempty(emt_reg) == 0
for i = 1:size(emt_reg,2)
%for filling rows
temp = A(emt_reg(i):end,:);
A(emt_reg(i),:)= zeros(size(A,1),1);
A (emt_reg(i)+1:end,:) = [];
A = [A ; temp];
%for filling columns
temp = [];
temp = A(:,emt_reg(i):end);
A(:,emt_reg(i))= zeros(1,size(A,1));
A (:,emt_reg(i)+1:end) = [];
A = [A temp];
end
end

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by