How do I take my generated string outputs from for loop and return a list?

조회 수: 1 (최근 30일)
seq = 'ACAUUUGCUUCUGACACAACUGUGUUCACUAGCAACCUCAAACAGACA'
for i=1:3:numel(seq)-2
a = (seq(i:i+2))
end
a = 'ACA'
a = 'UUU'
a = 'GCU'
a = 'GAC'
etc...
% Desired output --> ['ACA', 'UUU', 'GCU', 'GAC' ...]

채택된 답변

Walter Roberson
Walter Roberson 2023년 1월 19일
You should be careful what you ask for. 'ACA' is the 1 x 3 char vector ['A' 'C' 'A'] and ['ACA' 'UUU'] is concatenating two 1 x 3 vectors together getting a 1 x 6 vector 'ACAUUU' -- back to where you started
seq = 'ACAUUUGCUUCUGACACAACUGUGUUCACUAGCAACCUCAAACAGACA'
seq = 'ACAUUUGCUUCUGACACAACUGUGUUCACUAGCAACCUCAAACAGACA'
a1 = [];
a2 = cell(0);
for i=1:3:numel(seq)-2
a1 = [a1, seq(i:i+2)];
a2{end+1} = seq(i:i+2);
end
a1
a1 = 'ACAUUUGCUUCUGACACAACUGUGUUCACUAGCAACCUCAAACAGACA'
a2
a2 = 1×16 cell array
{'ACA'} {'UUU'} {'GCU'} {'UCU'} {'GAC'} {'ACA'} {'ACU'} {'GUG'} {'UUC'} {'ACU'} {'AGC'} {'AAC'} {'CUC'} {'AAA'} {'CAG'} {'ACA'}
a3 = reshape(seq, 3, []).'
a3 = 16×3 char array
'ACA' 'UUU' 'GCU' 'UCU' 'GAC' 'ACA' 'ACU' 'GUG' 'UUC' 'ACU' 'AGC' 'AAC' 'CUC' 'AAA' 'CAG' 'ACA'
I would suggest to you that the a3 method is easiest. You might want to cellstr() or string() the resutling 16x3 array.

추가 답변 (1개)

Sulaymon Eshkabilov
Sulaymon Eshkabilov 2023년 1월 19일
Here si the solution:
a=[];
seq = 'ACAUUUGCUUCUGACACAACUGUGUUCACUAGCAACCUCAAACAGACA'
seq = 'ACAUUUGCUUCUGACACAACUGUGUUCACUAGCAACCUCAAACAGACA'
for i=1:3:numel(seq)-2
a = [a; (seq(i:i+2))];
end
a
a = 16×3 char array
'ACA' 'UUU' 'GCU' 'UCU' 'GAC' 'ACA' 'ACU' 'GUG' 'UUC' 'ACU' 'AGC' 'AAC' 'CUC' 'AAA' 'CAG' 'ACA'
  댓글 수: 1
Stephen23
Stephen23 2023년 1월 19일
편집: Stephen23 2023년 1월 19일
It is inefficient to keep expanding an array in a loop like that.
Simpler and much more efficient:
seq = 'ACAUUUGCUUCUGACACAACUGUGUUCACUAGCAACCUCAAACAGACA';
mat = reshape(seq,3,[]).'
mat = 16×3 char array
'ACA' 'UUU' 'GCU' 'UCU' 'GAC' 'ACA' 'ACU' 'GUG' 'UUC' 'ACU' 'AGC' 'AAC' 'CUC' 'AAA' 'CAG' 'ACA'

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

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

제품


릴리스

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by