作者fellow100 (fellow100)
看板MATLAB
標題[討論] 如何取代 ? . 符號
時間Fri Mar 17 05:15:47 2017
新手請益,請問能夠幫忙我看一下哪裡寫錯了?
我從xlsread讀excel file,
讀出來是長成下面這樣:
'100+000.000'
'100+010.000'
'100+020.000'
'100+030.000'
'100+040.000'
'100+050.000'
我想變成:
'100.000000'
'100.010000'
'100.020000'
'100.030000'
'100.040000'
'100.050000'
excel file:
https://www.dropbox.com/s/xigygtypvj7nzzp/north1.xls?dl=0
第一步想先取代+號,我目前是寫:
[N, T, rawdata] = xlsread('north1', 'sheet1', 'A1:A5121')
expr1 = '\+\'
regexprep(N, expr1, '.')
矩陣輸出結果完全沒變,還是長這個樣子:100+050.000
能夠用regexprep正規表示式取代嗎?
+和.的符號在regexp都已經有各自的意義:
+號 表示比對前一個字元一次或更多次
.號 表示比對任何一個字元
謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.72.182.143
※ 文章網址: https://webptt.com/m.aspx?n=bbs/MATLAB/M.1489698949.A.A31.html
※ 編輯: fellow100 (42.72.182.141), 03/17/2017 05:51:47
1F:推 robert780612: N只會讀數值,若excel中是string要用T來做regexp 03/19 00:38
2F:推 clang: 如果要用RegEx比對要加跳脫 \+跟\. 03/21 10:10
3F:→ clang: 不過原po的需求用strrep就夠了吧 03/21 10:10
4F:→ clang: 剛剛看了下matlab不用加前後的slash,expr1改成'\+'似乎就 03/21 10:12
5F:→ clang: 行? 03/21 10:12
6F:推 imafsb: T=regexprep(T,'\.',''); 03/21 12:09
7F:→ imafsb: T=regexprep(T,'\+','\.'); 03/21 12:10
8F:→ imafsb: N=cellfun(@str2num,T); 03/21 12:10