add a column between tow columns
    22 views (last 30 days)
  
       Show older comments
    
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
0 Comments
Accepted Answer
  Sara
      
 on 29 May 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 Comments
  Sara
      
 on 29 May 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.
More Answers (3)
  Adam
 on 29 May 2014
        Hi, look here http://www.mathworks.com/matlabcentral/answers/1085-inserting-a-column-in-a-matrix-without-deleting-any-column
If you use it often, some function handling it should not be problem to program.
Adam
0 Comments
  Jos (10584)
      
      
 on 29 May 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)
0 Comments
See Also
Categories
				Find more on Crystals in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


