将mat文件中的字段保存为循环中的csv文件
save fields from mat file as csv files in a loop
我有一个包含 15 个字段的 .mat 文件 file_0_50_abcdef_ft.mat
(例如,cgb
、stpAB
、stpAC
、stAB
等),这 15 个字段中的每一个都是一个结构。
我需要从第一个结构中提取一个字段:cgb.ch
,并从其他 14 个结构(即 poscllabmat
和 negcllabmat
)中提取两个字段(具有相同的标签)。
提取它们后,我需要将它们另存为单独的 .csv 文件。我想要获得的输出例如是:cgb_ch.csv
、stpAB_poscllabmat_0_50.csv
、stpAB_negcllabmat_0_50.csv
、stpAC_poscllabmat_0_50.csv
、stpAC_negcllabmat_0_50.csv
等等。
实现此目标的最佳方法是什么?
我需要为多个 .mat 文件执行此操作。
遍历变量/字段组合,创建文件名,使用动态字段名访问数据并将其提供给 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 文件缺少变量或其中一个结构缺少字段,则会出错。
我有一个包含 15 个字段的 .mat 文件 file_0_50_abcdef_ft.mat
(例如,cgb
、stpAB
、stpAC
、stAB
等),这 15 个字段中的每一个都是一个结构。
我需要从第一个结构中提取一个字段:cgb.ch
,并从其他 14 个结构(即 poscllabmat
和 negcllabmat
)中提取两个字段(具有相同的标签)。
提取它们后,我需要将它们另存为单独的 .csv 文件。我想要获得的输出例如是:cgb_ch.csv
、stpAB_poscllabmat_0_50.csv
、stpAB_negcllabmat_0_50.csv
、stpAC_poscllabmat_0_50.csv
、stpAC_negcllabmat_0_50.csv
等等。
实现此目标的最佳方法是什么? 我需要为多个 .mat 文件执行此操作。
遍历变量/字段组合,创建文件名,使用动态字段名访问数据并将其提供给 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 文件缺少变量或其中一个结构缺少字段,则会出错。