How does one produce an array of strings automatically?

4 visualizzazioni (ultimi 30 giorni)
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

Risposta accettata

Mischa Kim
Mischa Kim il 14 Apr 2014
Modificato: Mischa Kim il 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 Commenti
Oliver
Oliver il 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.

Accedi per commentare.

Più risposte (2)

Jan
Jan il 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 il 16 Apr 2014
And a documented one liner:
x = strcat('v',cellstr(num2str((1:5).')))

Categorie

Scopri di più su Characters and Strings in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by