Distributing a cell array into another
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Jerki Jokne
el 18 de Mayo de 2020
Respondida: Star Strider
el 18 de Mayo de 2020
If I have 2 cell arrays of chars, is it possible to distribute them such that they are combined and concatenated?
A = {'Category1', 'Category2'};
B = {'Mon', 'Tues', 'Wed', 'Thurs' 'Fri', 'Sat', 'Sun'};
Result = {'Category1 Mon', 'Category1 Tues', ..., 'Category1 Sun', 'Category2 Mon', 'Category2 Tues', ..., 'Category2 Sun'};
0 comentarios
Respuesta aceptada
Star Strider
el 18 de Mayo de 2020
A = {'Category1 ', 'Category2 '};
B = {'Mon', 'Tues', 'Wed', 'Thurs' 'Fri', 'Sat', 'Sun'};
then transposing ‘A’ and adding them:
Result = string(A).' + string(B)
produces:
Result =
2×7 string array
Columns 1 through 4
"Category1 Mon" "Category1 Tues" "Category1 Wed" "Category1 Thurs"
"Category2 Mon" "Category2 Tues" "Category2 Wed" "Category2 Thurs"
Columns 5 through 7
"Category1 Fri" "Category1 Sat" "Category1 Sun"
"Category2 Fri" "Category2 Sat" "Category2 Sun"
Otherwise, the only option is likely two nested loops, concatenating elements of ‘A’ and ‘B’ in each iteration to form elements of ‘Result’.
.
0 comentarios
Más respuestas (2)
the cyclist
el 18 de Mayo de 2020
Editada: the cyclist
el 18 de Mayo de 2020
Here is a straightforward way:
A = {'Category1', 'Category2'};
B = {'Mon', 'Tues', 'Wed', 'Thurs' 'Fri', 'Sat', 'Sun'};
nA = numel(A);
nB = numel(B);
Result = cell(1,nA*nB);
nc = 0;
for ia = 1:nA
for ib = 1:nB
nc = nc + 1;
Result{nc} = [A{ia},' ',B{ib}];
end
end
0 comentarios
Fangjun Jiang
el 18 de Mayo de 2020
strcat(repmat(A,size(B')),repmat({' '},[length(B),length(A)]),repmat(B',size(A)))
0 comentarios
Ver también
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!