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!

 채택된 답변

Andrei Bobrov
Andrei Bobrov 2013년 8월 16일
편집: Andrei Bobrov 2013년 8월 16일
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

추가 답변 (3개)

Walter Roberson
Walter Roberson 2013년 8월 15일
V{j} = strcat(C(i),D(j))

댓글 수: 1

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

댓글을 달려면 로그인하십시오.

Azzi Abdelmalek
Azzi Abdelmalek 2013년 8월 15일
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 2013년 8월 15일
편집: Jan 2013년 8월 15일
...
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?

카테고리

도움말 센터 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by