Azzera filtri
Azzera filtri

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

6 visualizzazioni (ultimi 30 giorni)
A=[1 5 6; 3 0 8]

Risposta accettata

Azzi Abdelmalek
Azzi Abdelmalek il 18 Mag 2016
Modificato: Azzi Abdelmalek il 18 Mag 2016
A=[1 5 6; 3 0 8]
A=[A [60;80]]
%Or
A(:,end)=[60;80]
  1 Commento
Image Analyst
Image Analyst il 18 Mag 2016
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.

Accedi per commentare.

Più risposte (4)

Image Analyst
Image Analyst il 18 Mag 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

Ahmet Cecen
Ahmet Cecen il 18 Mag 2016
A(:,3) = A(:,3) + [60;80];
  3 Commenti
Ahmet Cecen
Ahmet Cecen il 18 Mag 2016
This is putting it back into that column.

Accedi per commentare.


Jos (10584)
Jos (10584) il 18 Mag 2016
Modificato: Jos (10584) il 18 Mag 2016
A = [1 5 6 ; 0 3 8]
A(:,3) = [60 ; 80] % insert a vector in the 3rd column
  2 Commenti
Jos (10584)
Jos (10584) il 19 Mag 2016
Modificato: Jos (10584) il 19 Mag 2016
True, but isn't there a difference between "insert into" and "insert before"/"insert after"? Confusing question → different answers.

Accedi per commentare.


Jos (10584)
Jos (10584) il 19 Mag 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/

Categorie

Scopri di più su Dialog Boxes in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by