append cell array #2 to cell array #1 to get a final cell array of cells

41 Ansichten (letzte 30 Tage)
Having trouble combining two arrays. Thanks for any advice.
A-- cell array #1: 1x184 (first 3 cells and last cell shown below)
4657x2 double 85x2 double 39x2 double.......87x2 double (last cell)
B --- cell array #2: 1x2
155x2 double 155x2 double
C -- #3 to also be a cell array 1x186 (desired)
4657x2 double 85x2 double 39x2 double.......87x2 double 155x2 double 155x2 double
I have tried --
C = cat(2,A,B);
C= [A;B]
C = horzcat(A,B); --> sometimes works. If I clear workspace, it will work if I run the code twice. Otherwise, it is unpredictable when it works and I get the error "Dimensions of arrays being concatenated are not consistent." How can I get this to work every time?
  2 Kommentare
Adam
Adam am 18 Okt. 2019
Bearbeitet: Adam am 18 Okt. 2019
horzcat should work fine, as should its equivalent:
C = [A B];
If it doesn't work every time there must be something you are missing out from your example, that occurs in other cases.
Claire
Claire am 18 Okt. 2019
Cell array "A" is a subset of cell array "D"
A = (D(~cellfun('isempty',D)));
Further, cell array "D" is a subset of cell array "E". E is the original cell array.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Kaashyap Pappu
Kaashyap Pappu am 21 Okt. 2019
The operations carried out by either:
C = [A B];
C = horzcat(A,B);
C = cat(2,A,B);
Should work for your requirement. There is a chance that “A” could have more than 1 row based on the cell arrays “E” and “D”, which could create problems for concatenation. This could happen if "E" or "D" have more than 1 row.
Hope this helps!
  1 Kommentar
Claire
Claire am 21 Okt. 2019
Thank you for your comment. For some reason, A was alternating its dimensions after each iteration. For example, on iteration one A was 184x1. On iteration two, A was 1x184 (which is why the code always reliably worked on the second iteration).
I am unsure of why it was doing this, but I then put in a line to intentionally transpose both A and B to be vertical cell arrays and now I no longer have this error.
A = transpose (A);
B = transpose(B);
C = cat(1,A,B);

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

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

Community Treasure Hunt

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

Start Hunting!

Translated by