how to insert the column [60;80] into the third column
2 ビュー (過去 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!