Borrar filtros
Borrar filtros

add a column between tow columns

20 visualizaciones (últimos 30 días)
Hossein
Hossein el 29 de Mayo de 2014
Respondida: Jos (10584) el 29 de Mayo de 2014
Hi,
I am newbie with matlab. I have a matrix like:
a = [ 2 5 7 ; 3 6 8]
I would like to add new column between column 1 and 2, So I will have:
a = [2 1 5 7; 3 4 6 8]
Let me ask it more general, I want to add a column between any two columns.
Thanks

Respuesta aceptada

Sara
Sara el 29 de Mayo de 2014
Given the array A and the column vector x, let n be the column after which you want to add x into A:
ncol = size(A,2);
cat(2,A(:,1:n),x,A(:,min(n+1,ncol):end))
  3 comentarios
Sara
Sara el 29 de Mayo de 2014
As far as I know, you may add x it at the end of A too, so n+1 would be outside A boundaries. It's just a precaution.
Hossein
Hossein el 29 de Mayo de 2014
Clear as crystal now :)

Iniciar sesión para comentar.

Más respuestas (3)

Hossein
Hossein el 29 de Mayo de 2014
Editada: Hossein el 29 de Mayo de 2014
I found answer my self (actually my friend help me with that. but any other solution is still welcomed :) )
x [1;4];
a = [a(:,1) x a(:,2:end)]

Adam
Adam el 29 de Mayo de 2014
If you use it often, some function handling it should not be problem to program.
Adam

Jos (10584)
Jos (10584) el 29 de Mayo de 2014
% DATA
A = [1 2 3 ; 4 5 6] % original matrix
x = [8 ; 9] % values to insert
J = 2 % insert x AFTER column J into A
% ENGINE
B = [A x]
[~,i] = sort([1:size(A,2) J])
B = B(:,i)

Categorías

Más información sobre Manual Performance Optimization en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by