我正在尝试加载MAT文件并获取数据集作为输出。如果我跑
a = load('foo.mat');
a 是结构而不是数据集。为了获取数据集,我需要运行以下代码
load('foo.mat');
a = foo;
但是,以这种方式,在我的工作区中,我有两个完全相同的数据集,特别是 a 和 foo 。
有没有办法只编写一行代码并导入MAT文件并获得一个数据集而不是两个?
答案 0 :(得分:4)
不load
不将其分配给变量是一个坏主意,因为这使跟踪工作区的更改变得困难。
我通常会这样做,
a = struct2array(load('foo.mat'));
但这有一些局限性(例如,仅在foo.mat
包含单个变量的情况下有效)。
答案 1 :(得分:4)
创建一个单独的函数来加载数据。
function[foo] = loader()
load('foo.mat');
end
然后将其称为:
a = loader();
由于该函数的作用域是封闭的,因此可以使用变量在mat文件中的名称加载变量。函数返回后,您可以将值分配给所需的任何名称。