假设我有一个.mat文件,其中有几个具有相同结构的实例,每个实例都有不同的变量名。
我想处理文件中找到的每个实例(我使用whos('-file' ...
找到)。我希望load
允许我指定变量的目标名称,这样我就不必担心冲突了(因此我不必编写自修改代码la {{1 }})。
执行此操作的强力方法似乎是创建一个辅助函数,使用名称希望与.mat内容不冲突的变量,可以执行以下操作:
eval
是否可以获取包含的名称。whos
将加载的结构分配到单元格数组中(其中数组的一列包含.mat文件的结构名称和相应的列,其中包含.mat中每个结构的实际内容)文件)。有没有更优雅的方法来完成同样的事情?
答案 0 :(得分:8)
当然可以!只需将load
与输出参数一起使用。
x = 1;
save foo;
ls = load('foo.mat');
ls.x
答案 1 :(得分:4)
您可以将load
MAT文件中的数据转换为结构
ws = load('matlab.mat');
结构ws
的字段将是MAT文件中的变量。然后你甚至可以有一个结构的单元格数组
ws{1}=load('savedWorkSpace_1.mat');
ws{2}=load('savedWorkSpace_2.mat');
实施例
>> x = 1;
>> save ws_1;
>> x = 2;
>> y = 1;
>> save ws_2
>> clear
>> ws{1} = load('ws_1.mat')
>> ws{2} = load('ws_2.mat')
>> ws{1}.x
x = 1
>> ws{2}.x
x = 2