How do I horizontally concatenate the following 2 numerical arrays?

2 Ansichten (letzte 30 Tage)
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?

Akzeptierte Antwort

Azzi Abdelmalek
Azzi Abdelmalek am 27 Nov. 2013
Bearbeitet: Azzi Abdelmalek am 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 Kommentar
Brad
Brad am 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?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

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

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by