Using Matfile() in combination with a variable

6 visualizaciones (últimos 30 días)
Jan Majewski
Jan Majewski el 21 de Nov. de 2018
Editada: Jan Majewski el 22 de Nov. de 2018
I reference a Matfile and to access its entries using a variable:
a = 'variablefrommat';
m = matfile('myMat.mat');
x = m.a
This results (obviously) in Matlab searching the Matfile for 'a'. In my case this error occurs:
'a' does not exist in 'myMat.mat'.
Is there a way to interpret 'a' as the variable?

Respuesta aceptada

Adam Danz
Adam Danz el 21 de Nov. de 2018
Editada: Adam Danz el 21 de Nov. de 2018
The mat file object is similar to a structure array. Use parentheses to access fields dynamically.
m = matfile('myMat.mat');
a = 'variablefrommat';
x = m.(a) %same as m.variablefrommat

Más respuestas (1)

Geoff Hayes
Geoff Hayes el 21 de Nov. de 2018
Jan - if you know the name of the variable that you want to reference then why are you setting this to its own variable? What are you trying to accomplish here?
You can do this using getfield as
x = getfield(m,a)
which will return the expected result...but do you need to do it this way?
  1 comentario
Jan Majewski
Jan Majewski el 22 de Nov. de 2018
Editada: Jan Majewski el 22 de Nov. de 2018
I have a function which executes it since i have a lot variables and wanted to organize it better.
Maybe should have added it in the Question.
Your solution works aswell! Thanks.

Iniciar sesión para comentar.

Categorías

Más información sobre Workspace Variables and MAT Files 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