resample matrix by distance

2 visualizzazioni (ultimi 30 giorni)
Dion Theunissen
Dion Theunissen il 22 Gen 2021
Commentato: Bjorn Gustavsson il 22 Gen 2021
I need to resample a matrix [x,y,z,rad,dist] by the distance. This is a non constant frequency.
I want a frequency of 0,1 mm per sample. For now i have a distance of 162,2 mm over 118 samples, but this can vary by every single file.
I want an automatic file which resamples the matrix to a sample frequency of 0.1 mm per sample.
Can I maybe make a for loop with the resample method? And how should it look like?

Risposta accettata

Bjorn Gustavsson
Bjorn Gustavsson il 22 Gen 2021
Modificato: Bjorn Gustavsson il 22 Gen 2021
Since you have approximately 1.5 mm between samples on average you will have to do some re-interpolation of your data. This works provided the assumption that the interpolation-scheme is reasonable for your data. That is up for you to check/verify/demonstrate/argue/show/assume. This can be done something like this:
sample_dist = your_data(:,5);
dist_interp = min(sample_dist):0.1:max(sample_dist);
if dist_interp(end) < max(sample_dist)
dist_interp(end+1) = max(sample_dist);
end
data_reinterp = interp1(sample_dist,your_data,dist_interp,'pchip');
This works provided dist varies monotonically.
HTH
  2 Commenti
Dion Theunissen
Dion Theunissen il 22 Gen 2021
Thanks HTH,
It looks like im close but the export file (data_reinterp) is still a 118x5 file.
Do I need to couple it with the dist_interp on a way?
Thanks in advance.
Bjorn Gustavsson
Bjorn Gustavsson il 22 Gen 2021
OK, fixed the copy-n-paste error...

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by