resample matrix by distance

3 次查看(过去 30 天)
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?

采纳的回答

Bjorn Gustavsson
Bjorn Gustavsson 2021-1-22
编辑:Bjorn Gustavsson 2021-1-22
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 个评论
Dion Theunissen
Dion Theunissen 2021-1-22
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 2021-1-22
OK, fixed the copy-n-paste error...

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by