2017-02-14 70 views
0

所有我认为文本文件可能是将Matlab输出导出为文本文件的最简单方式(因为csvwrite仅支持数值,而xlswrite在处理日期/时间时可能很痛苦)。我的数据由日期,时间戳,字符串(股票名称),值(股票价值)组成。数据也有列名作为标题。 请问,我怎样才能将我的数据导出到文本文件中(然后我将其读取为csv)。我做了大量的阅读,但我仍然陷入困境。将数据从Matlab导出到文本文件

对初学者有任何建议吗?非常感谢

回答

0

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和写字板承认“\ 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你可以找到更多的信息和几个例子。

+0

谢谢Leos313。我在matlab帮助中看到了这个例子,我尝试应用它,但它得到一个错误,说“错误使用fprintf 无法将'table'类的对象转换为'double'。”任何想法?另外我如何处理字符串,日期和时间戳使用fprint?非常感谢 –

+0

分享你的代码,所以我们可以尝试复制错误。在任何情况下,您似乎都在使用“%f”来打印双精度值或浮点值,但数据不是双精度值。请仔细阅读您的工作区,并使用fprintf指令的确切选项。 – Leos313