How to concatenate string vectors of unequal length?

If I have thee vectors v1 = {'a' 'b' 'c'}', v2 = {'d'}' and v3 = {'e' 'f'}', how do I create a four vector v4 =
'a' 'd' 'e'
'b' '' 'f'
'c' '' ''
?

1 comentario

Stephen23
Stephen23 el 21 de Dic. de 2014
Editada: Stephen23 el 2 de En. de 2015
Actually this is concatenating cell arrays of unequal lengths... the fact that these contain strings is totally irrelevant to both the question and the answer. The title should be "How to concatenate cell vectors of unequal length?"

Iniciar sesión para comentar.

 Respuesta aceptada

Image Analyst
Image Analyst el 20 de Dic. de 2014
Try this:
% Define component cell arrays.
v1 = {'a'; 'b'; 'c'}
v2 = {'d'}
v3 = {'e'; 'f'}
% Find out how big cell array needs to be.
lv1 = length(v1);
lv2 = length(v2);
lv3 = length(v3);
rows = max([lv1,lv2,lv3])
% Instatiate cell array of the max size.
v4 = cell(rows, 3)
% stuff each column in.
v4(1:lv1, 1) = v1;
v4(1:lv2, 2) = v2;
v4(1:lv3, 3) = v3;
% Print out results
fprintf('\n\nHere is the output cell array:\n');
v4
In the command window:
Here is the output cell array:
v4 =
'a' 'd' 'e'
'b' [] 'f'
'c' [] []

Más respuestas (3)

v1 = {'a' 'b' 'c'}',
v2 = {'d'}'
v3 = {'e' 'f'}'
v=cell(3,3)
v(:,:)={' '}
v(1:3,1)=v1
v(1,2)=v2
v(1:2,3)=v3
Thorsten
Thorsten el 20 de Dic. de 2014
v1 = {'a' 'b' 'c'}';
v2 = {'d'}';
v3 = {'e' 'f'}';
m = max([numel(v1) numel(v2) numel(v3)]);
if numel(v1) < m, v1{m} = []; end
if numel(v2) < m, v2{m} = []; end
if numel(v3) < m, v3{m} = []; end
M = [v1 v2' v3]';
X = M(:);
Shoaibur Rahman
Shoaibur Rahman el 20 de Dic. de 2014
Editada: Shoaibur Rahman el 20 de Dic. de 2014
v1 = {'a' 'b' 'c'}';
v2 = {'d'}';
v3 = {'e' 'f'}';
Lv1 = length(v1); Lv2 = length(v2); Lv3 = length(v3);
n = max([Lv1 Lv2 Lv3]);
v1cell = [v1; cell(n-Lv1,1)];
v2cell = [v2; cell(n-Lv2,1)];
v3cell = [v3; cell(n-Lv3,1)];
v4 = [v1cell v2cell v3cell];

Categorías

Más información sobre Data Type Identification en Centro de ayuda y File Exchange.

Preguntada:

el 20 de Dic. de 2014

Editada:

el 2 de En. de 2015

Community Treasure Hunt

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

Start Hunting!

Translated by