How can I insert row into matrix without deleting its values?
158 views (last 30 days)
Show older comments
Giorgi
on 28 Jan 2015
Commented: Jayasudha
on 5 Mar 2024
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
Hikaru
on 28 Jan 2015
Is there a condition to be satisfied before performing this operation? Is it always going to be the 3rd position?
Accepted Answer
Matz Johansson Bergström
on 28 Jan 2015
Edited: Matz Johansson Bergström
on 28 Jan 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 Comments
More Answers (2)
Stalin Samuel
on 28 Jan 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 Comment
Riyadh Muttaleb
on 14 Mar 2017
Hi Stalin,
I would like to insert rows by using loop, your help would be so appreciated,
Riyadh
Anil Kamat
on 1 Oct 2021
Edited: Anil Kamat
on 1 Oct 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
0 Comments
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!