Re: [問題] 請問urlread截取資料的問題已回收

看板MATLAB作者 (Acoustic)時間13年前 (2011/02/14 14:03), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/4 (看更多)
※ 引述《BruceBowen12 (just defense)》之銘言: : 不好意思 想請問一下 : 我也是用urlread去截取網站的數字 : 得到 "1101","-0.15","14:30:00","31.9","27.8","30.25","30.25","29.7" : 這只是其中的一小段 其實抓到的是 1*256 char : 但我的問題是 想要抓取雙引號 ""內的數字 : 因為中間的數字是會變大 變小的 唯一不變的是雙引號的數量 : 不知道有沒有什麼方法 可以讓我抓引號內的數字呢 : 不一定會全部抓 有可能會跳著抓 : 也就是可以選擇 要抓那一組引號內的數字 : 謝謝 您的例子應該不需要用到 regular expression 我試著用 textscan 將數字分成數個文字欄位 之後請依所需將特定位置的文字轉成數字即可 str = '"1101","-0.15","14:30:00","31.9","27.8","30.25","30.25","29.7"'; %%% 【'delimiter','","】:以【逗號】和【雙引號】為分隔符號 %%% 【'multipleDelimsAsOne',1】:碰到連續分隔符號時,僅視為一個 xstr = textscan(str, '%s', 'delimiter', '",', 'multipleDelimsAsOne', 1); %%% xstr 為 8x1 的 cell xstr = xstr{:}; %%% 範例一:取出第二個欄位 -0.15 並轉換成數字 mynum = str2num(char(xstr(2))); %%% 範例二:忽略 14:30:00 這個時間文字,mynum 將會是 7x1 的 double array %%% 14:30:00 因格式不符無法轉換double,故被 str2num() 忽略 mynum = str2num(char(xstr)); : ※ 引述《banco (Acoustic)》之銘言: : : 假如以上文字儲存在 string array A 裡 : : A(1,:)是第一行的內容, A(2,:) 是第二行的內容, 其餘以此類推 : : >> BBB=regexp(cellstr(AAA),'>(\d+\.\d+)|(\d+)\s*<','tokens','once'); : : BBB會是一個7x1的 Cell, 裡面存著匹配到的數字字串 : : 像第二行因為不符合匹配的條件, 所以 BBB{2} 是空的 cell : : 若再用下列的方式, 即可將匹配的結果轉換成數值陣列 : : >> CCC = [BBB{:}]; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.27.3
文章代碼(AID): #1DMCNFQW (MATLAB)
文章代碼(AID): #1DMCNFQW (MATLAB)