Remove non-finite values while decimating
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Taylor Azizeh
am 31 Okt. 2023
Kommentiert: Taylor Azizeh
am 9 Nov. 2023
I was able to decimate 8 other identical (or so I thought) files, but this one hit an error. Code and error below:
%% Set path
cd 'C:\folder'
%% Load data
data = readtable('data.csv');
%% Decimate and then convert to table format
data50_X = decimate(data{:,4},2);
Error using filtfilt
Expected input to be finite.
Error in filtfilt>efiltfilt (line 123)
validateattributes(x,{'double','single'},{'finite','nonempty'},'filtfilt');
Error in filtfilt (line 102)
y = efiltfilt(b,a,x);
Error in decimate (line 157)
odata = filtfilt(b,a,idata);
0 Kommentare
Akzeptierte Antwort
Image Analyst
am 1 Nov. 2023
Try this:
data = readtable('data.csv');
goodRows = isfinite(data{:, 4});
data = data(goodRows, :); % Extract only the good/finite values rows.
9 Kommentare
Image Analyst
am 9 Nov. 2023
Sorry, you need another argument for all to make it apply across columns. Try this:
%% Load in your data (this may take a while, depdending on the size of the file)
data = readtable('small_data.csv');
%% Decimate and then convert to table format
goodRows = all(isfinite(data{:, 4:6}), 2);
data = data(goodRows, :) % Extract only the good/finite values rows
Weitere Antworten (1)
Matt J
am 31 Okt. 2023
Bearbeitet: Matt J
am 31 Okt. 2023
Likely, there are NaNs in your data that you have to remove.
find(~isfinite(data{:,4}))
5 Kommentare
Matt J
am 1 Nov. 2023
find(~isfinite(data{:,4})) gives the locations of the bad data. You can go there and see what those values are, and either remove them or replace them with something else.
Siehe auch
Kategorien
Mehr zu Numeric Types finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

