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

조회 수: 412 (최근 30일)
Giorgi . 2015년 1월 28일
편집: Anil Kamat . 2021년 10월 1일
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
Giorgi 2015년 1월 28일
Well its always going to be 3rd position

댓글을 달려면 로그인하십시오.

채택된 답변

Matz Johansson Bergström
Matz Johansson Bergström 2015년 1월 28일
편집: Matz Johansson Bergström 님. 2015년 1월 28일
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,:)]
  댓글 수: 5

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Stalin Samuel
Stalin Samuel 2015년 1월 28일
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+1:end+1,:) =tp
  댓글 수: 1
Riyadh Muttaleb
Riyadh Muttaleb 2017년 3월 14일
Hi Stalin,
I would like to insert rows by using loop, your help would be so appreciated,

댓글을 달려면 로그인하십시오.

Anil Kamat
Anil Kamat 2021년 10월 1일
편집: Anil Kamat 님. 2021년 10월 1일
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];


Help CenterFile Exchange에서 Structures에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by