how to insert the column [60;80] into the third column
조회 수: 7 (최근 30일)
이전 댓글 표시
A=[1 5 6; 3 0 8]
댓글 수: 0
채택된 답변
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
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
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
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
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)
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/
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!