How to create multiple strings
14 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Chao Zhang
el 27 de Mayo de 2021
Comentada: Chao Zhang
el 27 de Mayo de 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 comentario
Respuesta aceptada
Jan
el 27 de Mayo de 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 comentarios
Más respuestas (1)
Adam Danz
el 27 de Mayo de 2021
Editada: Adam Danz
el 27 de Mayo de 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)
Ver también
Categorías
Más información sobre Characters and Strings en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!