How do I horizontally concatenate the following 2 numerical arrays?

2 views (last 30 days)
I have 2 separate arrays that I'm trying to concatenate.
ND is a 2x6 double array as follows;
ND = 58560 NaN 58561 -1100 -5100 4100
58570 Nan 59571 -1200 -5200 4200
OD is a 3x4 double array as follows;
OD = 58564 1 58563 11
58572 2 58573 21
58572 2 58573 22
The desired output array is shown below (3x 10 double array):
output = 58560 NaN 58561 -1100 -5100 4100 58564 1 58563 11
58570 NaN 59571 -1200 -5200 4200 58572 2 58573 21
58570 NaN 59571 -1200 -5200 4200 58572 2 58573 22
Since the dimensions do not allow for either vertical or horizontal concatenation, is there a technique I could use to achieve the desired output?

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 27 Nov 2013
Edited: Azzi Abdelmalek on 27 Nov 2013
ND =[58560 nan 58561 -1100 -5100 4100;58570 nan 59571 -1200 -5200 4200]
OD =[58564 1 58563 11;58572 2 58573 21; 58572 2 58573 22]
n=size(ND,1);
m=size(OD,1);
ND(end:m,:)=repmat(ND(end,:),m-n+1,1)
out=[ND OD]
  1 Comment
Brad
Brad on 27 Nov 2013
Azzi, thank you for looking at this. The answer you supplied works.
I do have a follow on question. In my original question, I supplied the sample arrays ND and OD, along with the desired output. In executing your answer I realized the sample matrices I supplied were too simplified. If the OD array is:
OD = 58564 1 58563 11
58564 1 58565 12
58572 2 58573 21
58572 2 58573 22
And the desired output is:
output = 58560 NaN 58561 -1100 -5100 4100 58564 1 58563 11
58560 NaN 58561 -1100 -5100 4100 58564 1 58565 12
58570 NaN 59571 -1200 -5200 4200 58572 2 58573 21
58570 NaN 59571 -1200 -5200 4200 58572 2 58573 22
How do I achieve the desired result when I can't use end as part of the repmat?

Sign in to comment.

More Answers (1)

Andrei Bobrov
Andrei Bobrov on 27 Nov 2013
out = [ND(OD(:,2),:),OD]

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!