我從傳感器獲得了大約一萬個資料點。此資料被提取為 excel .csv 檔案并使用 加載readtable,從而生成一個 10093x1 的表。
但是,我遇到的問題是這些資料的第 1、第 10、第 19 等是不必要的值,因此我想排除它們。我發現這些數字有一個共同點:除以 9 時余數為 1 的一行。

如何洗掉 9 的除數等于 1 的行?
uj5u.com熱心網友回復:
您只需洗掉每第九行,因此您甚至可以使用簡單的冒號索引
data(1:9:end, :) = [];
或者,使用您的除數理論,您可以通過使用mod()和邏輯索引來做到這一點:
idxRemove = mod(1:size(data,1),9) == 1; % True if remainder after division by 9 is 1
data(idxRemove,:) = []; % Remove unwanted rows
您可以單行它以提高效率,因為idxRemove在這種情況下不存盤:
data(mod(1:size(data,1),9) == 1,:) = [];
無論哪種方式,使用mod()都會比使用冒號索引更慢且可讀性更差。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/371518.html
標籤:MATLAB
