How to concatenate string vectors of unequal length?
15 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Danny
el 20 de Dic. de 2014
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
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?"
Respuesta aceptada
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)
Azzi Abdelmalek
el 20 de Dic. de 2014
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
0 comentarios
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(:);
0 comentarios
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];
0 comentarios
Ver también
Categorías
Más información sobre Cell Arrays en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!