我有以下文本文件THERM2.DAT,它具有唯一的格式:
Ag+ g10/97AG 1.E -1. 0. 0.G 298.150 6000.000 1000. 1
9.72687035E+00-4.01472180E-03 7.47796464E-07-1.76595533E-11-4.14279861E-15 2
1.17714726E+05-3.91847888E+01 1.67072904E-01 2.30034783E-02-8.05675031E-05 3
1.14647031E-07-5.08119362E-11 1.22365909E+05 1.49717871E+01 1.22928919E+05 4
Ag- g10/97AG 1.E 1. 0. 0.G 298.150 6000.000 1000. 1
2.50067694E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 2
1.76654697E+04 5.86586664E+00 2.50067694E+00 0.00000000E+00 0.00000000E+00 3
0.00000000E+00 0.00000000E+00 1.76654697E+04 5.86586664E+00 1.84110465E+04 4
AIR L 9/95 WARNING! 0G 200.000 6000.000 1000. 1
3.08792717E+00 1.24597184E-03-4.23718945E-07 6.74774789E-11-3.97076972E-15 2
-9.95262755E+02 5.95960930E+00 3.56839620E+00-6.78729429E-04 1.55371476E-06 3
-3.29937060E-12-4.66395387E-13-1.06234659E+03 3.71582965E+00-1.50965000E+01 4
这只是文件的一部分,有数百行,每组4行对应一个特定的物种。
我的目标是将所有这些数据转换为更通用的内容,例如CSV文件,以便Excel,Matlab等各种程序可以轻松读取。以下内容会很好:
Ag+,298,6000,1000,9.72687035E+00,-4.01472180E-03,7.47796464E-07,etc...
Air,200,6000,1000,3.08792717E+00,1.24597184E-03,-4.23718945E-07,etc...
由于我有Matlab,我想知道是否可以使用它将数据导出到CSV文件。到目前为止,我有以下Matlab脚本:
fid = fopen('THERM2.DAT');
data = textscan(fid,'%s');
使用textscan
将所有数据放入单元格数组中,但我不知道如何从数组中获取数据并将其写入CSV格式的文本。
答案 0 :(得分:0)
我检查了帮助文档,这是一个例子,也许它很有用
以下字符串包含换页符\ f:
**lyric = sprintf('Blackbird\fsinging\fin\fthe\fdead\fof\fnight');**
要使用textscan读取字符串,请调用sprintf函数以显式转换换页符:
**C = textscan(lyric, '%s', 'delimiter', sprintf('\f'));**
textscan返回一个1乘1的单元格数组C:
C {1} = {'黑鸟'; '唱歌'; '在'; “的”; '死'; '的'; '夜间'}