how to insert the column [60;80] into the third column

조회 수: 7 (최근 30일)
Bella
Bella 2016년 5월 18일
편집: Jos (10584) 2016년 5월 19일
A=[1 5 6; 3 0 8]

채택된 답변

Azzi Abdelmalek
Azzi Abdelmalek 2016년 5월 18일
편집: Azzi Abdelmalek 2016년 5월 18일
A=[1 5 6; 3 0 8]
A=[A [60;80]]
%Or
A(:,end)=[60;80]
  댓글 수: 1
Image Analyst
Image Analyst 2016년 5월 18일
This appends. It does not insert. The data are not even in column 3 - they're in column 4. Even though my code is longer because of comments and error checking, I think it's the most robust, and it will insert or append depending on how many columns there are already.

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

추가 답변 (4개)

Image Analyst
Image Analyst 2016년 5월 18일
Bella, here's a fairly robust way:
% Define sample data.
A=[1 5 6; 3 0 8]
[rows, columns] = size(A);
% Define a column vector of data you'd like to insert.
colVecToInsert = [60;80]
% Define the column you want to insert it to
col = 3;
% Do the insert
if col >= 1 && col <= (columns + 1)
A = [A(:,1:col-1), colVecToInsert, A(:, col:end)]
elseif col > (columns + 1)
% Will append to right side.
A = [A, colVecToInsert]
else
warningMessage = sprintf('Cannot insert into column %d', col);
uiwait(warndlg(warningMessage));
end

Ahmet Cecen
Ahmet Cecen 2016년 5월 18일
A(:,3) = A(:,3) + [60;80];
  댓글 수: 3
Bella
Bella 2016년 5월 18일
figured it out, thanks
Ahmet Cecen
Ahmet Cecen 2016년 5월 18일
This is putting it back into that column.

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


Jos (10584)
Jos (10584) 2016년 5월 18일
편집: Jos (10584) 2016년 5월 18일
A = [1 5 6 ; 0 3 8]
A(:,3) = [60 ; 80] % insert a vector in the 3rd column
  댓글 수: 2
Image Analyst
Image Analyst 2016년 5월 18일
This overwrites, not inserts.
Jos (10584)
Jos (10584) 2016년 5월 19일
편집: Jos (10584) 2016년 5월 19일
True, but isn't there a difference between "insert into" and "insert before"/"insert after"? Confusing question → different answers.

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


Jos (10584)
Jos (10584) 2016년 5월 19일
For what it is worth, take a look at INSERTROWS, which you can use with transpose to get "insertcolumns" after (or before) a specific column
A = [1 5 6 ; 3 0 8]
B = [60 ; 80]
ColumnToInsertB_before = 3
C = insertrows(A.', B.', ColumnToInsertB_before-1).'
The function INSERTROWS can be downloaded via this link: http://blogs.mathworks.com/pick/2008/05/16/inserting-rows/

카테고리

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

태그

Community Treasure Hunt

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

Start Hunting!

Translated by