【问题标题】:Any function in matlab to write the output of matlab code to excel file each time the code gets executed without over writing the data每次执行代码时matlab中的任何函数都可以将matlab代码的输出写入excel文件而不会覆盖数据
【发布时间】:2020-01-04 17:38:15
【问题描述】:

每次执行时,我的 matlab 代码的输出都会给出一个字符串。我需要每次都将字符串保存在 Excel 工作表中,而不会覆盖 Excel 工作表中的先前数据。新字符串必须添加到 Excel 工作表的新单元格中。

【问题讨论】:

标签: excel matlab


【解决方案1】:

writecell 函数有一个可选的range 参数,它允许您写入某个范围,而无需触及工作表的其余部分。

writecell({'A' 'B' 'C'},'C.xls','Range','A1:C1')

如果你想写数字数据而不是字符串,writematrix 更可取。

【讨论】:

    【解决方案2】:

    例子:

    filename = 'testdata.xlsx';
    for i = 1:10
    textdata = {['some text ', num2str(i)]};
    writecell(textdata,filename,'Sheet',1,'Range',['B',num2str(i)]);
    end
    

    【讨论】:

    • 在这段代码中,所有 10 个输出字符串都是一次生成的。每次执行代码后,我都需要保存字符串。
    • 在这段代码中,每个字符串都是迭代生成的。只需插入您的代码 'textdata = {['some text ', num2str(i)]}'
    【解决方案3】:

    Daniels 方法适用于 writecellwritetablewritematrix,您只需要跟踪范围(或更新范围的行索引...)

    herehere 描述了一种更复杂(或复杂)的方法。

    问题是如果你

    1. 确实需要一致地写入 excel 文件,或者如果您的 RAM 允许将所有内容存储在 matlab 表中并在最后写入文件一次
    2. 必须是 excel 文件还是 .mat 文件可以? (更容易更新)
    3. 如果要写入逗号分隔的文件,可以写入 .csv 文件吗?您可以将字符串(可以是格式化的行)附加到文本文件中,请参阅here

    如果您不想更改原始代码,可能只需要选项 3。

    dlmwrite('test.csv',MATRIX,'delimiter',',','-append');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-27
      • 1970-01-01
      • 2020-10-12
      • 1970-01-01
      • 2012-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多