【问题标题】:Export data from Matlab to text file将数据从 Matlab 导出到文本文件
【发布时间】:2017-02-14 08:07:37
【问题描述】:

所有,我认为文本文件可能是将 Matlab 输出导出到文本文件的最简单方法(因为csvwrite 仅支持数值,xlswrite 在处理日期/时间时可能会很痛苦)。

我的数据由日期、时间戳、字符串(股票名称)、值(股票值)组成。数据还具有列名称作为标题。 请,我如何将我的数据导出到文本文件(然后我将其读取为csv)。我做了广泛的阅读,但我仍然卡住了。

对初学者有什么建议吗?非常感谢

【问题讨论】:

    标签: matlab file csv text


    【解决方案1】:

    fprintf() 是你的朋友。

    不过,我要在这里写一个小例子:

    将指数函数的简短表格写入名为 exp.txt 的文本文件中

    x = 0:.1:1;
    A = [x; exp(x)];
    
    fileID = fopen('exp.txt','w');
    fprintf(fileID,'%6s %12s\n','x','exp(x)');
    fprintf(fileID,'%6.2f %12.8f\n',A);
    fclose(fileID);
    

    第一次调用 fprintf 打印标题文本 x 和 exp(x),第二次调用打印来自变量 A 的值。

    如果您打算使用 Microsoft® 记事本读取文件,请使用 '\r\n' 而不是 '\n' 移动到新行。例如,将对 fprintf 的调用替换为以下内容:

    fprintf(fileID,'%6s %12s\r\n','x','exp(x)');
    fprintf(fileID,'%6.2f %12.8f\r\n',A);
    

    MATLAB® 导入函数、所有 UNIX® 应用程序以及 Microsoft Word 和 WordPad 将“\n”识别为换行符。

    使用 type 命令查看文件内容。

    type exp.txt
    
         x       exp(x)
      0.00   1.00000000
      0.10   1.10517092
      0.20   1.22140276
      0.30   1.34985881
      0.40   1.49182470
      0.50   1.64872127
      0.60   1.82211880
      0.70   2.01375271
      0.80   2.22554093
      0.90   2.45960311
      1.00   2.71828183
    

    Here你可以找到更多信息和几个例子。

    【讨论】:

    • 感谢 Leos313。我在 matlab 帮助中看到了这个示例,我尝试应用它,但它收到错误消息“使用 fprintf 时出错,无法将类 'table' 的对象转换为 'double'。”任何的想法?还有如何使用 fprint 处理字符串、日期和时间戳?非常感谢
    • 分享您的代码,以便我们尝试复制错误。无论如何,您似乎正在使用“%f”来打印双精度或浮点值,但您的数据不是双精度的。请查看您的工作区并使用 fprintf 指令的确切选项。
    猜你喜欢
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 1970-01-01
    • 2020-09-05
    • 1970-01-01
    • 1970-01-01
    • 2020-07-28
    • 1970-01-01
    相关资源
    最近更新 更多