How does one produce an array of strings automatically?

4 vues (au cours des 30 derniers jours)
Oliver
Oliver le 14 Avr 2014
Commenté : Walter Roberson le 16 Avr 2014
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

Réponse acceptée

Mischa Kim
Mischa Kim le 14 Avr 2014
Modifié(e) : Mischa Kim le 14 Avr 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 commentaires
Sean de Wolski
Sean de Wolski le 16 Avr 2014
Perhaps you want:
T = vertcat(totalVec{:})
Oliver
Oliver le 16 Avr 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.

Connectez-vous pour commenter.

Plus de réponses (2)

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

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

Catégories

En savoir plus sur Characters and Strings dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by