Using index to name variables
74 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Lukas Netzer
el 12 de Mayo de 2021
Comentada: Lukas Netzer
el 13 de Mayo de 2021
I'm running a script with a index containing:
t{1} = Location1;
t{2} = Location2;
t{3} = Location3;
tt{1} = "Location1";
tt{2} = "Location2";
tt{3} = "Location3";
t's are tables. Now the actual script does e.g. this:
for x = 1:1:size(t{n})
if t{n}.var1(x) == 0
a_tt{n}(x) = b_tt{n}(x) / t{n}.var2(x);
if t{n}.var2(x) == 0
a_tt{n}(x) = 0;
end
As can be seen above I am trying to get a_Location1 and b_Location2 - but it does not work that way. Is there a smooth way to get a_location1/2/3 and b_location1/2/3 using the index?
It's for a lot of lines in the script, so some way without doing it by hand, would be nice!
Thanks for your help!
2 comentarios
Rik
el 12 de Mayo de 2021
Why do you want numbered variables? You shouldn't store data in a variable name.
Respuesta aceptada
Jan
el 12 de Mayo de 2021
Do not create variables names dynamically. This would store information in the names, where it is hard to access. Use the values of the variables instead.
You can use dynamic field names of structs:
a = struct()
for x = 1:1:size(t{n})
if t{n}.var1(x) == 0
a.(tt{n})(x) = b_tt{n}(x) / t{n}.var2(x);
elseif t{n}.var2(x) == 0
a.(tt{n})(x) = 0;
end
end
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!