【问题标题】:Matlab: Appending data from .mat files to specified ranges in excel sheetsMatlab:将 .mat 文件中的数据附加到 Excel 工作表中的指定范围
【发布时间】:2016-03-09 20:42:52
【问题描述】:

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

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

我试过 dlmwrite ‘-append’,但它不会让我指定 excel 范围,也不会在 excel 表中保留预定义的公式。

有人知道如何做到这一点吗?

非常感谢所有帮助!

干杯

【问题讨论】:

    标签: excel matlab append


    【解决方案1】:

    您可以使用csvwrite()writetable()xlswrite() 来代替dlmwrite()
    但是,您应该注意以下几点:

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

    无论如何,它们都允许您指定行/列偏移量来写入数据:

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

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

    【讨论】:

    • 我实际上已经尝试过了,但除了指定我想要附加的数据之外,我无法弄清楚如何在保留 .csv 文件中已经指定的数据和公式的同时追加新数据在 B2:F10 范围内?你能把它写成例子吗?非常感谢。
    • 此外,我有 matlab 2011 版,所以我没有 writetable() 内置函数,不幸的是......但我可以使用 csvwrite,但我不能'将数据附加到我在 .csv 文件中已有的内容中。你知道怎么做吗?谢谢
    • 我用另一个建议编辑了我的问题,即xlswrite()。在xlswrite() 中,您可以指定第三个输入参数,即单元格范围。因此,您可以通过调用xlswrite() 轻松地在 B2:F10 范围内写入矩阵,如下所示:xlswrite('myFile.xlsx',myMatrix,'B2:F10')
    • 据我所知,csvwritexlswrite能够真正追加:您必须先验地知道当前使用的最后一行是什么是。这很糟糕(在 MathWork 方面)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多