2012-11-24 57 views
1

为了组合数据,我想加载一个数据作为基础,将数据分配给另一个变量(例如将其命名为base_data)。然后加载另一个数据并遍历所有字段。如果基础数据中不存在当前字段,请将该字段添加到基础数据。 (例如,base_data.fieldname = data.fieldname)。然后我想将base_data保存到文件中。我可以知道命令在Matlab中做到这一点吗?结合2个.mat文件

回答

1

使用动态字段名:

base_data = load('A.mat'); 
B = load('B.mat'); 
fn = fieldnames(B); 
for ii=1:length(fn) 
    fieldname = char(fn(ii)); 
    if ~isfield(base_data,fieldname) 
     base_data.(fieldname) = B.(fieldname); 
    end 
end 
save('base_data','base_data') 
+0

嗨,当我使用上面的命令,我可以创造一个base_data.mat。但是,当我使用以下命令: - load base_data.mat; base_data.variable1;我得到错误: - 引用到不存在的字段'variable1'。我是否犯了一个错误?变量1是B.mat中的一个字段。 –

+0

加载base_data后,可以使用gui(变量检查器窗格)或disp(fieldnames(base_data))来显示结构中包含的内容。你可以从那里调试。您还可以在上面的代码中设置断点,以查看是否将“B”的字段正确地复制到“base_data”中。这可能是用'B = load('B.mat')'语法加载你的matfiles并没有给你你所期望的,在这种情况下你可能需要重新安排这个结构。 – tmpearce