【问题标题】:save fields from mat file as csv files in a loop在循环中将 mat 文件中的字段保存为 csv 文件
【发布时间】:2017-11-15 15:24:01
【问题描述】:

我有一个 .mat 文件 file_0_50_abcdef_ft.mat 有 15 个字段(例如,cgbstpABstpACstAB 等),这 15 个字段中的每一个都是一个结构。 我需要从第一个结构中提取一个字段:cgb.ch,并从其他 14 个结构(即poscllabmatnegcllabmat)中提取两个字段(具有相同标签)。

提取它们后,我需要将它们另存为单独的 .csv 文件。我想得到的输出例如:cgb_ch.csvstpAB_poscllabmat_0_50.csvstpAB_negcllabmat_0_50.csvstpAC_poscllabmat_0_50.csvstpAC_negcllabmat_0_50.csv等等。

实现这一目标的最佳方法是什么? 我需要为几个 .mat 文件执行此操作。

【问题讨论】:

标签: matlab csv save structure field


【解决方案1】:

遍历变量/字段组合,创建文件名,使用动态字段名称访问数据并将其提供给csvwrite

类似这样的:

temp = load('file_0_50_abcdef_ft.mat');
varList  = {'cgb', 'stpAB', 'stpAC'};
subField = {{'ch'}, {'poscllabmat', 'negcllabmat'}, {'poscllabmat', 'negcllabmat'}};
for j = 1:numel(varList)
    for k = 1:numel(subField{j})
        fileName = [varList{j} '_' subField{j}{k} '.csv'];
        csvwrite(fileName,temp.(varList{j}).(subField{j}{k}));
    end
end

注意:根本没有错误检查。如果您的 mat 文件缺少变量或其中一个结构缺少字段,则会出错。

【讨论】:

    猜你喜欢
    • 2021-08-01
    • 2022-11-28
    • 1970-01-01
    • 1970-01-01
    • 2014-01-16
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多