Create variable from string

5 visualizzazioni (ultimi 30 giorni)
Teresa
Teresa il 18 Giu 2015
Modificato: Stephen23 il 19 Giu 2019
I would like to alter a string in order to access a certain cell of a Matrix. Can I do that by creating a string first? For example
s='{2,1}{1,1}' and then somehow get A{2,1}{1,1}
Actually I would like to create something like a reference. Like
x=A{2,1} x=x{1,1} x=5
and then at the same time change A so I get the following value when calling
>>A{2,1}{1,1}
A{2,1}{1,1} =
5
Usually I would think of using a pointer but that does not seem to be possible in Matlab, or am I mistaken?
  1 Commento
Stephen23
Stephen23 il 18 Giu 2015
Modificato: Stephen23 il 18 Giu 2015
Avoid doing this.
MATLAB does not support pointers, and creating some hack-code to improvise them will not be robust.
In particular using dynamic strings like this to define indexing (or variables names) is liable to difficult-to-debug errors. Learn to program using more robust techniques, and your own life will become much easier...

Accedi per commentare.

Risposte (2)

Stephen23
Stephen23 il 18 Giu 2015
Modificato: Stephen23 il 19 Giu 2019

Walter Roberson
Walter Roberson il 18 Giu 2015
eval(['A', s])
and for assignment
eval(['A', s, ' = ', Value_As_string])
Not recommended at all.
  1 Commento
Stephen23
Stephen23 il 18 Giu 2015
Modificato: Stephen23 il 19 Giu 2019
@Teresa: note that those words "Not recommended at all" that Walter Roberson wrote are actually very significant.

Accedi per commentare.

Categorie

Scopri di più su Startup and Shutdown in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by