How does one produce an array of strings automatically?

8 views (last 30 days)
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

Accepted Answer

Mischa Kim
Mischa Kim on 14 Apr 2014
Edited: Mischa Kim on 14 Apr 2014
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 Comments
Oliver
Oliver on 16 Apr 2014
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.

Sign in to comment.

More Answers (2)

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

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

Tags

Community Treasure Hunt

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

Start Hunting!