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

Learn moreOpportunities for recent engineering grads.

Apply TodayTo resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

Asked by joseph Frank on 9 Feb 2011

Hi,

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"

Answer by Martijn 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 =

17 18 19 20

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".

## 0 Comments