如何用matlab在不用循環語句的情況下刪除包含某些特定字元的行?
01-07
以下表舉例,如何刪除簡稱中包含「銀行」的整行數據
刪除後變為我已經用循環可以實現上述功能,但因為原數據行數非常龐大(有百萬行),逐行循環過慢,有沒有不用for循環語句的方法?stata裡面一個 drop if regexm(var2,"銀行")==1 一個命令就可以迅速解決的功能,matlab應該也有類似的做法吧,不然每次做一個剔除都要幾十分鐘也太不方便了
從你的代碼看你是用的 cell 存儲的(不過更推薦用 table),應當可以這樣做:
dat = dat(cellfun("isempty",strfind(dat(:,2),"銀行")),:);
或者 2016b 的新函數:
dat = dat(~contains(dat(:,2),"銀行"),:);
不過如果你用的 2016b 的話說明你可以使用性能更好的 String 類型,建議配合 Table 使用
推薦閱讀:
※Mathematica 有哪些不如 MATLAB 的地方?
※如何用Matlab畫一朵花?
※自學 MATLAB,有哪些小項目值得推薦?
※大家用matlab有遇到過哪些槽點?
※如何使用MATLAB畫三維的蘋果?
TAG:MATLAB |