看板 MATLAB 關於我們 聯絡資訊
環保署資料排列如下: 其中有很多文字~組合在數列中~檔案是個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
jeffppp:你可以試試看xlsread 這也可以讀CSV檔 12/28 18:28
YoursEver:先隨便寫個C/C++ code,把csv裡面會妨礙matlab讀檔的東西 12/29 07:54
YoursEver:拿掉,這樣會比較省事. 12/29 07:54
greg2977:本來以為xlsread不能容忍文字沒想到會主動轉成nan :D 12/29 13:12
kanx:先用perl 把資料處理一次, 再用xlsread讀吧, 不過 #代表什麼? 12/29 20:39
Sunal:如果不需要#作法很簡單 進notepad直接刪掉就好了 12/29 21:31
greg2977:#號的數據及字串是不要的 所以用xlsread一行搞定:D 12/30 00:18