Re: [問題] 把CSV變為XLS已回收

看板MATLAB作者 (Bishop)時間13年前 (2011/02/12 13:28), 編輯推噓0(005)
留言5則, 2人參與, 最新討論串3/3 (看更多)
textscan 的使用有點麻煩 比如我要打開一個 .csv 檔格式如下 x y z 1 11 8 0 2 8 30 0 3 9 48 224.4 . . . . . . . . . . . . 檔名 2010_GSTAT_HW1_DATA.csv 則若要適當的切割 x, y, z 和最左欄的序號,程式碼可寫成如下: fid = fopen('2010_GSTAT_HW1_DATA.csv'); data = textscan(fid, '%s%s%s%s', 'Delimiter', ','); 其中 %s 是以字串的方式讀取,原因是以欄做切割時,數值和字串會同時出現 而 Delimiter 是選擇分隔符號的一個參數名稱,後面定義逗號是分隔符號 這樣就能以 .csv 的格式讀取 .csv 檔 最後出來 data 的形式: Name Value data <1*4 cell> data{1,1} 就是最左欄的序號 data{1,2} data{1,3} data{1,4} 就是開頭分別為 x, y, z 的數值資料 後續再用 data = [data{1,1}(2:end) data{1,2}(2:end) data{1,3}(2:end) data{1,4}(2:end)]; 就可以去除第一列變數名稱、並把想要的資料以矩陣的方式抓出來了 最後再用 xlswrite 的指令就能把該變數寫成 Excel 檔囉 ※ 編輯: ht15trep 來自: 180.218.79.90 (02/12 13:31)

02/12 23:09, , 1F
個人覺得,改檔名變成.txt比較方便,如果不堅持用xls的話
02/12 23:09, 1F

02/12 23:09, , 2F
改了之後刪掉多於資訊,或在讀取程式中寫從哪讀到哪
02/12 23:09, 2F

02/12 23:10, , 3F
個人是可以把實驗data的取樣時間,頻率,數據一次全部入手
02/12 23:10, 3F

02/13 11:07, , 4F
我是有用過讀 .txt 的方法,用 fgetl 剔除不用的列
02/13 11:07, 4F

02/13 11:08, , 5F
這也是另一種方法
02/13 11:08, 5F
文章代碼(AID): #1DLXfhOw (MATLAB)
文章代碼(AID): #1DLXfhOw (MATLAB)