作者greg2977 (澔呆)
看板MATLAB
标题[讨论] 环保署资料
时间Fri Dec 28 10:55:52 2012
环保署资料排列如下:
其中有很多文字~组合在数列中~档案是个CSV档
日期 测站 测项 1 2 3 4 5
1996/1/1 台西 AMB_TEMP 12.56 12.17 12.23 11.76 11.61
1996/1/1 台西 CO 0.52 0.53 0.52 0.51 0.44
1996/1/1 台西 NO 0.06 0.09 0.02 0.09 0.49
1996/1/1 台西 NO2 16.21 15.54 16.72 20.1 16.63
1996/1/1 台西 NOx 16.27 15.63 16.75 20.19 17.13
1996/1/1 台西 O3 25.3 22.7 25.1 22.1# 28.9
1996/1/1 台西 PH_RAIN 0x 0x 0x 0x 0x
1996/1/1 台西 PM10 132 125 138 120 115
1996/1/1 台西 RAINFALL NR NR NR NR NR
1996/1/1 台西 RAIN_COND 0x 0x 0x 0x 0x
1996/1/1 台西 SO2 3.4 3.2 3.5 3.1 3.9
1996/1/1 台西 WIND_DIREC 31 30 31 28 29
1996/1/1 台西 WIND_SPEED 2.65 3.15 3.58 3.62 4
1996/1/2 台西 AMB_TEMP 11.31 10.45# 10.41 10.33 9.17
1996/1/2 台西 CO 0.77 .92# 1.12 1.26 1.21
1996/1/2 台西 NO 0.45 1.49# 12.38 28.25 27.39
我的读档方式:
clear all;close all;clc
%环保署的资料排列太鸟 一堆井号 还找不出个有效率的读法= =+
fid = fopen('85年台西站_20081006.csv');
%CSV有几栏 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8
data=textscan(fid,'%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s'...
,'Delimiter', ',');
n=length(data);
for i=1:n
data{1,i}=str2double(data{1,i});
end
=============================================================================
问题:
有没有一种读档方式是不用文字转数字的???
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 101.13.66.77
1F:→ jeffppp:你可以试试看xlsread 这也可以读CSV档 12/28 18:28
2F:→ YoursEver:先随便写个C/C++ code,把csv里面会妨碍matlab读档的东西 12/29 07:54
3F:→ YoursEver:拿掉,这样会比较省事. 12/29 07:54
4F:→ greg2977:本来以为xlsread不能容忍文字没想到会主动转成nan :D 12/29 13:12
5F:推 kanx:先用perl 把资料处理一次, 再用xlsread读吧, 不过 #代表什麽? 12/29 20:39
6F:推 Sunal:如果不需要#作法很简单 进notepad直接删掉就好了 12/29 21:31
7F:→ greg2977:#号的数据及字串是不要的 所以用xlsread一行搞定:D 12/30 00:18