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 Comments

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

Sign in to comment.

 Accepted Answer

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 Comments

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.

Sign in to comment.

More Answers (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 Comment

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

Sign in to comment.

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

Categories

Community Treasure Hunt

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

Start Hunting!