How to create multiple strings
11 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Chao Zhang
am 27 Mai 2021
Kommentiert: Chao Zhang
am 27 Mai 2021
The following code, I use eval to create multiple similiar matrixs
num=input('Please enter the number of rock types:');
%Setup initial ore and waste matrix respectively
for i = 1 : num
eval(['M_ORE',num2str(i), ' =zeros(R1,C1)']);%multiple ore matrix
end
But I do not know how to create multiple strings
For example, the initial string is 'rn_mill_ton'
I want to input n=5, and the multiple strings such as 'r1_mill_ton', 'r2_mill_ton','r3_mill_ton','r4_mill_ton', and 'r5_mill_ton' are created.
Therefore, how to do that?
Thanks!
1 Kommentar
Akzeptierte Antwort
Jan
am 27 Mai 2021
Hiding indices in the names of variables makes it cruel to access them later on. Use an array instead:
n = 5;
C = cell(1, n)
for k = 1:num
C{k} = sprintf('r%d_mill_ton', k);
end
0 Kommentare
Weitere Antworten (1)
Adam Danz
am 27 Mai 2021
Bearbeitet: Adam Danz
am 27 Mai 2021
Don't use eval() at all. 💀💣
- Matlab documentation: Alternative eval()
- Matlab Fandom: Why is it advised to avoid using the "eval" function?
- Lots of experienced Matlab users strongly recommend to avoid eval()
- TUTORIAL: How and why to avoid Eval
Since all of the variables you're dynamically creating are the same size (R1xC1) you're better off creating a 3D array,
num=input('Please enter the number of rock types:');
M_ORE = zeros(R1,C1,num);
So to get the matrix for rock type number j,
M_ORE(:,:,j)
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!