Concatenate two cell colums with different length, in Variables window it is possible while horzcat gives "not consistent" error.

3 visualizzazioni (ultimi 30 giorni)
I have two celll columns.
a={'11';'21';'31'};
b={'12';'22'};
if I issue the
c=[a,b];
command it gives the error
Error using horzcat
Dimensions of arrays being concatenated are not consistent.
However, if I do a
c=a;
and then I go to the Variables window and open 'c' and 'b' variables and copy the first (and only) column of 'b', I can paste the content ANYWHERE in the 'c' correctly. All the other (not involved) cell values become empty. How to reproduce it programmatically???

Risposta accettata

madhan ravi
madhan ravi il 9 Lug 2020
ab = {a, b};
[Val, which_one] = max([numel(a),numel(b)]);
c = cell(Val, 2);
c(:, 1) = a;
c(1 : numel(b), 2) = b
% or perhaps you want
c = cell(5);
c(1:numel(a), 1) = a;
c(end - numel(b) + 1 : end, end) = b

Più risposte (1)

madhan ravi
madhan ravi il 2 Lug 2020
c = {a, b} %? if this doesn't do what you want , you need to illustrate with an expected result.
  3 Commenti
madhan ravi
madhan ravi il 2 Lug 2020
Modificato: madhan ravi il 2 Lug 2020
ab = {a, b};
[Val, which_one] = max([numel(a),numel(b)]);
c = cell(Val, 2);
c(:, 1) = a;
c(1 : numel(b), 2) = b
% or perhaps you want
c = cell(5);
c(1:numel(a), 1) = a;
c(end - numel(b) + 1 : end, end) = b
Csaba
Csaba il 9 Lug 2020
Modificato: Csaba il 9 Lug 2020
Thanks, although it is a workaround (probably not possible to do it more elegantly) I would accept your answer if you would put it as an answer.

Accedi per commentare.

Categorie

Scopri di più su Data Type Identification in Help Center e File Exchange

Prodotti


Release

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by