Generate and Increment var names containing numbers and strings
Afficher commentaires plus anciens
Hello,
I'd like to generate a list of variable names where the output looks as follows:
# TB1W082A
# TB1W083A
# TB1W084A
# TB1W08AA
# TB1W08BA
# TB1W08CA
# TB1W092A
# TB1W093A
# TB1W094A
# TB1W09AA
# TB1W09BA
# TB1W09CA
Here is the code I'm using:
% alph=('A':'C');
% for n1 = 8:9
for n2 = 1:3
for a = 1:3
num{n2} = ['TB1W' num2str(n1) num2str(n2+1) 'A'];
str{a} = ['TB1W' num2str(n1) alph(a) 'A'];
end
end
end
clear a alpha n1 n2
I tried creating two variables; num and str. One was meant for the numeric portion and the other for the alphabetic portion. However, this is the output I get:
num =
- TB1W092A
- TB1W093A
- TB1W094A
str =
- TB1W09AA
- TB1W09BA
- TB1W09CA
Any suggestions?
1 commentaire
dpb
le 13 Fév 2014
Yeah, don't...see
for why not and how to do "the Matlab way" or if insist even the evil eval
Réponse acceptée
Plus de réponses (1)
Dee
le 13 Fév 2014
0 votes
1 commentaire
Matt Tearle
le 13 Fév 2014
The problem was that you were using your loop variables a and n2 as the indices to your arrays, so you are only ever assigning num{1}, num{2}, and num{3} (and ditto str). You were actually assigning them multiple times each, repeatedly overwriting them. To make your approach work, you'd need to keep an overall count variable going. Something along the lines of
k = 1;
for ...
for ...
for ...
num{k} = ...
k = k+1;
end
end
end
Catégories
En savoir plus sur String Parsing dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!