Storing results from a for loop into a cell array vector

Code so far:
C = {'TGC','TGT'};
D = {'ATA','ATC','ATT'};
k = length(C)*length(D);
V = cell(k,1);
for i=1:length(C)
for j=1:length(D)
V = strcat(C(i),D(j))
end
end
Output:
V =
'TGCATA'
V =
'TGCATC'
V =
'TGCATT'
V =
'TGTATA'
V =
'TGTATC'
V =
'TGTATT'
I just want to store those results in a single vector V. Thanks!

 Risposta accettata

Andrei Bobrov
Andrei Bobrov il 16 Ago 2013
Modificato: Andrei Bobrov il 16 Ago 2013
C = {'TGC','TGT'};
D = {'ATA','ATC','ATT'};
[jj,ii] = ndgrid(1:numel(D),1:numel(C));
out = strcat(C(ii(:)),D(jj(:)));
OR
V = cell(length(C)*length(D),1);
k = 1;
for i=1:length(C)
for j=1:length(D)
V(k) = strcat(C(i),D(j));
k = k + 1;
end
end

Più risposte (3)

V{j} = strcat(C(i),D(j))

1 Commento

It only stores the first 3 results. Is there a way to store all 6?

Accedi per commentare.

nc=numel(C);
nd=numel(D)
ii=repmat(1:nc,1,nd)
jj=repmat(1:nd,nc,1)
out=arrayfun(@(x,y) [C{x} D{y}],ii',jj(:),'un',0)
Jan
Jan il 15 Ago 2013
Modificato: Jan il 15 Ago 2013
...
for i=1:length(C)
for j=1:length(D)
V{i, j} = [C{i}, D{j}];
end
end
Now you store all results in the cell V, but what does "in a single vector" mean?

Categorie

Scopri di più su Operators and Elementary Operations in Centro assistenza e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by