【问题标题】:Combining 2 .mat files合并 2 个 .mat 文件
【发布时间】:2012-11-12 07:10:15
【问题描述】:

要合并数据,我想加载一个数据作为基础,将数据分配给另一个变量(例如,将其命名为 base_data)。然后加载另一个数据并循环遍历其所有字段。如果基础数据中不存在当前字段,则将该字段添加到基础数据中。 (例如 base_data.fieldname = data.fieldname)。然后我想将 base_data 保存到文件中。我可以知道在 Matlab 中执行此操作的命令吗?

【问题讨论】:

    标签: matlab mat-file


    【解决方案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')
    

    【讨论】:

    • 嗨,当我使用上述命令时,我能够创建一个 base_data.mat。但是,当我使用以下命令时:- 加载 base_data.mat; base_data.variable1;我收到错误消息:-引用不存在的字段“variable1”。我犯错了吗?变量 1 是 B.mat 中的一个字段。
    • 加载 base_data 后,使用 gui(变量检查器窗格)或 disp(fieldnames(base_data)) 向您显示结构中包含的内容。您可以从那里进行调试。您还可以在上面的代码中设置断点,以查看 B 的字段是否被适当地复制到 base_data 中。可能是使用 B=load('B.mat') 语法加载您的 matfile 并没有达到您的预期,在这种情况下,您可能需要先重新排列该结构。
    猜你喜欢
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-20
    • 2019-02-06
    • 2013-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多