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

96 vues (au cours des 30 derniers jours)
Giorgi
Giorgi le 28 Jan 2015
Commenté : Jayasudha le 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 commentaires
Hikaru
Hikaru le 28 Jan 2015
Is there a condition to be satisfied before performing this operation? Is it always going to be the 3rd position?
Giorgi
Giorgi le 28 Jan 2015
Well its always going to be 3rd position

Connectez-vous pour commenter.

Réponse acceptée

Matz Johansson Bergström
Matz Johansson Bergström le 28 Jan 2015
Modifié(e) : Matz Johansson Bergström le 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 commentaires
Asif Newaz
Asif Newaz le 27 Nov 2019
nice one mate
Jayasudha
Jayasudha le 5 Mar 2024
Thak you!

Connectez-vous pour commenter.

Plus de réponses (2)

Stalin Samuel
Stalin Samuel le 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 commentaire
Riyadh Muttaleb
Riyadh Muttaleb le 14 Mar 2017
Hi Stalin,
I would like to insert rows by using loop, your help would be so appreciated,
Riyadh

Connectez-vous pour commenter.


Anil Kamat
Anil Kamat le 1 Oct 2021
Modifié(e) : Anil Kamat le 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

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by