Matlab:将 .mat 文件中的数据附加到 excel 工作表中的指定范围

Matlab: Appending data from .mat files to specified ranges in excel sheets

我在matlab中有一堆.mat文件,保存为A1.mat、A2.mat、A3.mat等。.mat文件是包含数字的矩阵。 我正在尝试将每个 .mat 文件中的数据附加到已经存在的 excel 文件(A1.xlsx、A2.xls、A3.xls),其中 .mat 数据应该放在在excelsheet的一定范围内。 我需要将 .mat 数据放在 B2:F10 范围内,因为我在第一行 A1:F1 和第一列 A1:A10 中预定义了 headers。 我在 G2:G10 列的 excel sheet 中也有一些预定义方程,我想在其中对添加的 .mat 数据进行一些计算。

我有 .mat 数据直到 A60(因此 excel 文件直到 A60.xls)所以希望这可以在一个循环中完成。

我已经尝试过 dlmwrite '-append' 但它不会让我指定 excel 范围,也不会在 excel sheet 中保留预定义的公式。

有人知道如何执行此操作吗?

非常感谢所有帮助!

干杯

您可以使用 csvwrite()writetable()xlswrite().
而不是使用 dlmwrite() 但是,您应该注意以下几点:

  • csvwrite() 仅适用于 .csv 文件,因此您应该将 .xls 转换为 .csv(这可以使用 Excel 本身来完成)
  • writetable() 您必须将矩阵转换为 table(mat2cell()cell2table() 的组合)

无论如何,所有这些都允许您指定一个 row/column 偏移量来写入您的数据:

  • csvwrite()中可以使用第三个和第四个输入参数指定此类偏移量
  • writetable() 你必须指定 Range Name/Value
  • xlswrite() 中,第三个输入参数是一个字符串,您可以在其中指定要写入的 excel 单元格范围(例如 'A1:A10'

可以在各自的帮助页面上找到更多信息:
帮助写作table here
csvwrite 的帮助 here
xlswrite 的帮助 here