[討論] 如何取代 ? . 符號

看板MATLAB作者 (fellow100)時間7年前 (2017/03/17 05:15), 7年前編輯推噓3(305)
留言8則, 3人參與, 最新討論串1/1
新手請益,請問能夠幫忙我看一下哪裡寫錯了? 我從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://www.ptt.cc/bbs/MATLAB/M.1489698949.A.A31.html ※ 編輯: fellow100 (42.72.182.141), 03/17/2017 05:51:47

03/19 00:38, , 1F
N只會讀數值,若excel中是string要用T來做regexp
03/19 00:38, 1F

03/21 10:10, , 2F
如果要用RegEx比對要加跳脫 \+跟\.
03/21 10:10, 2F

03/21 10:10, , 3F
不過原po的需求用strrep就夠了吧
03/21 10:10, 3F

03/21 10:12, , 4F
剛剛看了下matlab不用加前後的slash,expr1改成'\+'似乎就
03/21 10:12, 4F

03/21 10:12, , 5F
行?
03/21 10:12, 5F

03/21 12:09, , 6F
T=regexprep(T,'\.','');
03/21 12:09, 6F

03/21 12:10, , 7F
T=regexprep(T,'\+','\.');
03/21 12:10, 7F

03/21 12:10, , 8F
N=cellfun(@str2num,T);
03/21 12:10, 8F
文章代碼(AID): #1Oom25en (MATLAB)
文章代碼(AID): #1Oom25en (MATLAB)