You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将MATLAB受试者数据批量导出至Excel工作簿的不同工作表?

将单受试者多组数据写入同一Excel工作簿的不同工作表

单个受试者处理代码

通过循环遍历变量名,把每个变量写入对应名称的工作表,生成一个包含所有数据的Excel文件:

% 加载受试者数据
data = load('subject_1.mat');
varNames = fieldnames(data);
excelFile = 'subject_1_all_data.xlsx';

% 循环写入每个变量到独立工作表
for idx = 1:length(varNames)
    currentVar = varNames{idx};
    writematrix(data.(currentVar), excelFile, 'Sheet', currentVar);
    % 若使用旧版MATLAB,替换为:xlswrite(excelFile, data.(currentVar), currentVar);
end
  • 每个变量会以自身名称作为工作表名,比如speed对应工作表speed,无需手动命名
  • 如果变量是字符串/元胞数组类型,将writematrix替换为writecell即可

批量处理100份受试者数据

通过外层循环遍历受试者编号,自动处理所有数据,避免重复操作:

% 遍历100个受试者
for subjID = 1:100
    % 构造.mat和Excel文件名
    matFilePath = sprintf('subject_%d.mat', subjID);
    excelFilePath = sprintf('subject_%d_all_data.xlsx', subjID);
    
    % 加载数据并获取变量名
    data = load(matFilePath);
    varNames = fieldnames(data);
    
    % 写入当前受试者的所有变量到对应工作表
    for idx = 1:length(varNames)
        currentVar = varNames{idx};
        writematrix(data.(currentVar), excelFilePath, 'Sheet', currentVar);
        % 旧版MATLAB替换为:xlswrite(excelFilePath, data.(currentVar), currentVar);
    end
end
  • 每个受试者对应一个独立Excel文件,文件命名为subject_N_all_data.xlsx(N为受试者编号)
  • 自动读取每个.mat文件的所有变量,无需手动修改变量名或文件名

注意事项

  • 确保目标Excel文件未被打开,否则会写入失败
  • 若工作表名存在特殊字符(如空格、标点),可对currentVar做简单处理,比如currentVar = strrep(currentVar, ' ', '_');替换空格为下划线

内容的提问来源于stack exchange,提问作者user731995

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 01:53:02