[討論] 環保署資料

看板MATLAB作者 (澔呆)時間13年前 (2012/12/28 10:55), 編輯推噓2(205)
留言7則, 5人參與, 最新討論串1/1
環保署資料排列如下: 其中有很多文字~組合在數列中~檔案是個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

12/28 18:28, , 1F
你可以試試看xlsread 這也可以讀CSV檔
12/28 18:28, 1F

12/29 07:54, , 2F
先隨便寫個C/C++ code,把csv裡面會妨礙matlab讀檔的東西
12/29 07:54, 2F

12/29 07:54, , 3F
拿掉,這樣會比較省事.
12/29 07:54, 3F

12/29 13:12, , 4F
本來以為xlsread不能容忍文字沒想到會主動轉成nan :D
12/29 13:12, 4F

12/29 20:39, , 5F
先用perl 把資料處理一次, 再用xlsread讀吧, 不過 #代表什麼?
12/29 20:39, 5F

12/29 21:31, , 6F
如果不需要#作法很簡單 進notepad直接刪掉就好了
12/29 21:31, 6F

12/30 00:18, , 7F
#號的數據及字串是不要的 所以用xlsread一行搞定:D
12/30 00:18, 7F
文章代碼(AID): #1GtGew4J (MATLAB)