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

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 comentarios

Is there a condition to be satisfied before performing this operation? Is it always going to be the 3rd position?
Well its always going to be 3rd position

Iniciar sesión para comentar.

 Respuesta aceptada

Matz Johansson Bergström
Matz Johansson Bergström el 28 de En. de 2015
Editada: Matz Johansson Bergström el 28 de En. de 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 comentarios

It seems that I was actually the first to give the answer, is my solution wrong?
When I did my research I found another solution that works for all kinds of matrices, check it out: insertrows "pick of the week".
Well both answers are correct, I also see the link and everything is clear now for me thanks for your response :)
Yes, both answers are correct, but the OP can only pick one. FWIW, I voted for yours as it is better formatted than Stalin's.
nice one mate
Thak you!

Iniciar sesión para comentar.

Más respuestas (2)

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 comentario

Hi Stalin,
I would like to insert rows by using loop, your help would be so appreciated,
Riyadh

Iniciar sesión para comentar.

Anil Kamat
Anil Kamat el 1 de Oct. de 2021
Editada: Anil Kamat el 1 de Oct. de 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

Categorías

Más información sobre Programming en Centro de ayuda y File Exchange.

Preguntada:

el 28 de En. de 2015

Comentada:

el 5 de Mzo. de 2024

Community Treasure Hunt

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

Start Hunting!

Translated by