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

3 visualizaciones (últimos 30 días)
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???

Respuesta aceptada

madhan ravi
madhan ravi el 9 de Jul. de 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

Más respuestas (1)

madhan ravi
madhan ravi el 2 de Jul. de 2020
c = {a, b} %? if this doesn't do what you want , you need to illustrate with an expected result.
  3 comentarios
madhan ravi
madhan ravi el 2 de Jul. de 2020
Editada: madhan ravi el 2 de Jul. de 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 el 9 de Jul. de 2020
Editada: Csaba el 9 de Jul. de 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.

Iniciar sesión para comentar.

Categorías

Más información sobre Data Type Identification en Help Center y File Exchange.

Productos


Versión

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by