Am I creating dynamic variable names?

10 visualizaciones (últimos 30 días)
hmhuang
hmhuang el 20 de Nov. de 2021
Comentada: hmhuang el 22 de Nov. de 2021
After reading this thread, I am still not sure I have created "dynamic variable names", which should be avoided as suggested in that thread.
I have a code snippet as following:
data = [1, 2, 3];
centerX = data(1);
centerY = data(2);
centerZ = data(3);
% And use these variables afterwards
Should I avoid creating those (probably dynamic) variable names, i.e., centerX, centerY, centerZ to use those data and simply/directly use data(1), data(2), data(3) instead?
  3 comentarios
hmhuang
hmhuang el 21 de Nov. de 2021
  • matrix1, matrix2, matrix3, matrix4, ...
  • test_20kmh, test_50kmh, test_80kmh, ...
  • nameA, nameB, nameC, nameD, ...
hmhuang
hmhuang el 21 de Nov. de 2021
Editada: hmhuang el 21 de Nov. de 2021
@Stephen But now I understand those example given in that thread were dynamically created using eval, which is different from my hardcoded ones.

Iniciar sesión para comentar.

Respuestas (1)

Sulaymon Eshkabilov
Sulaymon Eshkabilov el 20 de Nov. de 2021
What you are doing here is not dynamic variable naming. You're assigning a new variable name from your already assigned data.
This example shows the dynamic variable naming and assigning values to the dynamically named variables (U and V):
for jj=1:5
eval(['V' num2str(jj) '= jj'])
eval(['U' num2str(jj) '= ' 'V' num2str(jj) '*jj'])
end
Which is NOT recommended to employ.
That is equivalent to:
V = 1:5;
U = V.*V;
This one is the recommended one.
  11 comentarios
Image Analyst
Image Analyst el 22 de Nov. de 2021
@hmhuang, no. He did not create the dynamically named variable. His variable names are hard coded. If the file was called foo.png, there is no variable created called foo. You could do that with eval() but as we've been discussing, that's not recommended so that's why he probably did not show it. However he's saying that some people think they want to do it because they don't realize the problems it can cause.
hmhuang
hmhuang el 22 de Nov. de 2021
That's clear now, thanks!

Iniciar sesión para comentar.

Categorías

Más información sobre Scope Variables and Generate Names en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by