set variable to data that is loaded

Hello all,
Hopefully a very easy question. I am loading a file named matfile.mat that's value is double. I want to set my variable as the data that is loading, but when I put "x=load(matfile)" it returns "x=matfile: [1001x14 double]". I know I can type in x.matfile to access the data manually, but I run into issues when figuring out how to do this for my function. Any help is greatly appreciated!

 采纳的回答

x = load('matfile.mat');
temp = fieldnames(x);
x = x.(temp{1});

3 个评论

Fieldnames!!! Just what I needed thanks so much.
Ah, also the {} are needed too.
The {} make/index CELL arrays. They are like [], but have some advantages (and disadvantages).

请先登录,再进行评论。

更多回答(1 个)

If you are sure that you load only one matrix:
fName = fieldnames(x);
eval(['x = x.' fName{1} ';'])
Another possibility:
x = cell2mat(struct2cell(x))

2 个评论

You can eliminate the eval with dynamic field names.
Thanks too Grzegorz!

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Structures 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by