How can I plus (append) string in each loop?
조회 수: 4 (최근 30일)
이전 댓글 표시
I have:
person=[1,2];
for i=1:length(person)
if (person(i))== 1
str=sprintf('Person A');
elseif (output(i))==2
str=sprintf('Person B');
elseif (output(i))==3
str=sprintf('Person C');
elseif (output(i))==4
str=sprintf(' Person D');
elseif (output(i))==5
str=sprintf('Person E');
else
str=sprintf('System can not detect!');
end
end
%How can I plus result in each loop, like this:
%str='Person A Person B'
How can I plus result in each loop, like this:
str='Person A Person B'
Thank for your help!
댓글 수: 0
채택된 답변
Image Analyst
2016년 3월 12일
Here's another one of many ways. Not necessarily the best, but along the lines of what you started with. (Is this homework?)
person=[1, 2];
finalString = ''; % Initialize
for i=1:length(person)
if (person(i))== 1
str=sprintf('Person A');
elseif (person(i))==2
str=sprintf('Person B');
elseif (person(i))==3
str=sprintf('Person C');
elseif (person(i))==4
str=sprintf('Person D');
elseif (person(i))==5
str=sprintf('Person E');
else
str=sprintf('System can not detect!');
end
finalString = [finalString, ' ', str]; % Append this string.
end
fprintf('The final string = %s\n', finalString);
댓글 수: 2
Image Analyst
2016년 3월 13일
Sure, just ask, but remember to attach your images and explain the larger context of what you want.
추가 답변 (1개)
dpb
2016년 3월 12일
편집: dpb
2016년 3월 12일
I presume output is a typo intending person. But you don't need a loop nor any logical tests at all...
>> people=['A':'Z']; % define population of names from which to pick
>> persons=1:3:8; % chose some arbitrarily
>> sprintf('Person %2c ',people(person))
ans =
Person A Person D Person G
>>
BTW, if don't want the trailing blank or it's a bother, simply wrap with
strtrim(sprintf('Person %2c ',people(person)))
참고 항목
카테고리
Help Center 및 File Exchange에서 Entering Commands에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!