How does one produce an array of strings automatically?

조회 수: 4 (최근 30일)
Oliver
Oliver 2014년 4월 14일
댓글: Walter Roberson 2014년 4월 16일
I wish to produce an array/vector of strings to use as InputNames and OutputNames on a dynamical system model in something like the following manner (note that the below doesn't work, but illustrates what I'm looking for):
n = 5;
stringVector = {'v' num2str(n)};
in order to produce a vector of strings as such:
stringVector = {'v1', 'v2', 'v3', 'v4', 'v5'}
How can this be done?
Thanks, Olie

채택된 답변

Mischa Kim
Mischa Kim 2014년 4월 14일
편집: Mischa Kim 2014년 4월 14일
Oliver, you could do
n = 5;
for ii = 1:n
stringVector{ii} = strcat('v',int2str(ii));
end
or simply
stringVector = strcat({'v'},int2str((1:5)'));
  댓글 수: 3
Sean de Wolski
Sean de Wolski 2014년 4월 16일
Perhaps you want:
T = vertcat(totalVec{:})
Oliver
Oliver 2014년 4월 16일
Oh - I've just discovered, given two vectors of strings, vec1, and vec2, you can produce a concatenation of these vectors with
totalVec = [vec1,vec2]
Thanks for all the help.

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

추가 답변 (2개)

Jan
Jan 2014년 4월 14일
There is an undocumented but extremely efficient function for this job:
stringVector = sprintfc('v%d', 1:5)

Sean de Wolski
Sean de Wolski 2014년 4월 16일
And a documented one liner:
x = strcat('v',cellstr(num2str((1:5).')))

카테고리

Help CenterFile Exchange에서 Characters and Strings에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by