# How to add 1 matrix to another matrix ?

8 views (last 30 days)
Ahsan Abbas on 27 Apr 2016
Commented: Ahsan Abbas on 30 Apr 2016
I have 2 matrices with different size as show below and just want to concatenate both of them. I know 2nd matrix have 1st 6 columns entries that are lying in b/w 1st matrix somewhere, so now i just want to add last 2 column values to 1st matrix of there corresponding rows of 1st matrix. Can someone help me how to write syntax for this ?
##### 4 CommentsShowHide 3 older comments
Ahsan Abbas on 27 Apr 2016
x = [1 2 3; 4 5 6; 7 8 9; 10 11 12]; y = [4 5 6 12 15; 10 11 12 25 52]; result would be like z = [1 2 3 0 0; 4 5 6 12 15; 7 8 9 0 0; 10 11 12 25 52];

Sign in to comment.

### Accepted Answer

Star Strider on 27 Apr 2016
Edited: Star Strider on 27 Apr 2016
One approach, taking advantage of the fact that both of your matrices are sorted by the first column:
M1 = sortrows(rand(15, 4), 1); % Create 1st Matrix & Sort By Column #1
M2 = [M1(1:5:end,:) rand(3,2)]; % Create 2nd Matrix & Add Columns #5 & #6
idx = find(ismember(M1(:,1), M2(:,1))); % Find Indices Of Matching Column #1 Entries
M1 = [M1 zeros(size(M1,1),2)]; % Add Zeros To End Of ‘M1’
M1(idx,5:6) = M2(:,5:6); % Fill Columns #5 & #6 With Same Values From ‘M2’
Since you are dealing with floating-point numbers, if you have R2015a or later, you would likely best use ismembertol instead of ismember to guarantee that your data match.
##### 2 CommentsShowHide 1 older comment
Star Strider on 27 Apr 2016
My pleasure.
I’m hoping that your matrix entries are exact, so that ismember will work. If not, we will work on a way to use a tolerance with it. Rounding the first column of each matrix to a particular number of decimal places first would likely be easiest.

Sign in to comment.

### More Answers (1)

Azzi Abdelmalek on 27 Apr 2016
[n1,m1]=size(x)
[n2,m2]=size(y)
z=zeros(n1,m2)
idx=ismember(x,y(:,1:m1),'rows')
z(idx,:)=y
z(~idx,1:m1)=x(~idx,:)
##### 1 CommentShowHide None
Ahsan Abbas on 30 Apr 2016
Thank you Azzi for your response.

Sign in to comment.

### Categories

Find more on Resizing and Reshaping Matrices 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!