フィルターのクリア

reduce samples on a 3d array

7 ビュー (過去 30 日間)
Emmanouil Karamousadakis
Emmanouil Karamousadakis 2021 年 8 月 26 日
コメント済み: Wan Ji 2021 年 8 月 29 日
I have a 3d matrix containing temperature data. The first 2 dimensions are the the x,y, of my thermal camera, the 3rd dimention represents time.
It is a 160x120x30000. size
I cannot find a way to reduce its 3rd dimension size with some kind of interpolation, loosing data in between not at the ends. I would like to make it 160x120x28000 for example. Any ideas plz? I played aroud with griddedInterpolant and interp1 but I cannot figure it out.
Thank you!!

採用された回答

Wan Ji
Wan Ji 2021 年 8 月 26 日
編集済み: Wan Ji 2021 年 8 月 26 日
Use interp1 my friend, if a is the 160x120x30000 data that you said.
[m,n,p] = size(a);
a = reshape(a,m*n,p);
nSeries = p;
totalTime = nSeries - 1;
nSampled = 28000; % loosing data in between with 28000 samples
tSeries = linspace(0,totalTime,nSeries);
tSampled = linspace(0,totalTime,nSampled);
a = interp1(tSeries,a',tSampled);
a = reshape(a',m,n,nSampled); % this is the data resampled 160x120x28000
  2 件のコメント
Emmanouil Karamousadakis
Emmanouil Karamousadakis 2021 年 8 月 29 日
Thank you!!! It works perfect!!!
Your code is very very easy to understand!!
I appreciate it!
Wan Ji
Wan Ji 2021 年 8 月 29 日
Hi friend, my pleasure the code helped solve your problem! :)

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by