how to insert the column [60;80] into the third column
Show older comments
Accepted Answer
More Answers (4)
Image Analyst
on 18 May 2016
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
1 Comment
Ahmet Cecen
on 18 May 2016
Ooh I see what the question meant now.
Ahmet Cecen
on 18 May 2016
A(:,3) = A(:,3) + [60;80];
3 Comments
Bella
on 18 May 2016
Bella
on 18 May 2016
Ahmet Cecen
on 18 May 2016
This is putting it back into that column.
Jos (10584)
on 18 May 2016
Edited: Jos (10584)
on 18 May 2016
A = [1 5 6 ; 0 3 8]
A(:,3) = [60 ; 80] % insert a vector in the 3rd column
2 Comments
Image Analyst
on 18 May 2016
This overwrites, not inserts.
Jos (10584)
on 19 May 2016
Edited: Jos (10584)
on 19 May 2016
True, but isn't there a difference between "insert into" and "insert before"/"insert after"? Confusing question → different answers.
Jos (10584)
on 19 May 2016
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/
Categories
Find more on Matrix Indexing 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!