Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

Inserting a column in a matrix without deleting any column

Asked by joseph Frank

joseph Frank (view profile)

on 9 Feb 2011


I am wondering of there is a function that enables me to insert a column in a matrix (similar to insert column in excel) without replacing any existing column. For example I have Matrix "A" which is 4x4 and I want to insert a vector "B" after the second column of "A" in order to obtain "A" 4x5 where the 3rd column of "A" is vector "B"


joseph Frank

joseph Frank (view profile)


2 Answers

Answer by Martijn

Martijn (view profile)

on 9 Feb 2011
Accepted answer

Suppose you have:

>> A=reshape(1:16,4,4)
A =
       1     5     9    13
       2     6    10    14
       3     7    11    15
       4     8    12    16
>> B=(17:20)'
B =

Then you could obtain the desired matrix C by:

>> C = [A(:,1:2) B A(:,3:4)]
C =
       1     5    17     9    13
       2     6    18    10    14
       3     7    19    11    15
       4     8    20    12    16

So you take the first two columns of A concatenate the column B and then concatenate the last two columns of A.

You can generalize this a bit into:

>> D = [A(:,1:N) B A(:,N+1:end)]

Where N then stands for "insert B after the Nth column".


Martijn (view profile)

Answer by Izi

Izi (view profile)

on 19 Dec 2012

What about inserting a column which dimensions are not consistent?



Izi (view profile)

Contact us