作者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/cn.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