3次元配列における積​分値の計算方法につい​て教えてください.

3次元配列において,各行列の各要素での積分値の計算方法について教えていただきたいです.
例えば,
以下3次元配列Y(3×5×2),(データ点の間隔は0.1として)において、各行列の要素を積分して求める方法はありますか?
Y (:,:,1)=[1 2 3 4 5;
6 7 8 9 10;
11 12 13 14 15;]
Y (:,:,2)=[2 4 6 8 10;
12 14 16 18 20;
22 24 26 28 30;]
よろしくお願いします.
PS.現在は配列の各要素にアクセスして,台形則による積分trapzを用いて計算しようとしています.

 Risposta accettata

Hernia Baby
Hernia Baby il 14 Feb 2022

0 voti

配列の形をうまく変更してやってみましょう。
データを用意します。
x = randi(10,3,3,20);
x(:,:,1)
ans = 3×3
3 5 6 3 7 9 1 8 9
reshape によって 3×3×20 を 9×20 の配列へ変更します
[s1,s2,s3] = size(x);
x_1 = reshape(x,s1*s2,s3,1)
x_1 = 9×20
3 6 1 9 4 4 4 8 8 7 3 7 8 10 3 5 6 8 3 2 3 5 8 10 2 5 1 9 8 3 10 4 1 3 6 6 6 9 3 6 1 5 2 2 5 4 8 4 1 4 8 9 1 4 7 6 8 2 2 10 5 3 10 1 1 5 2 8 2 4 5 6 5 10 1 1 10 8 7 6 7 6 4 2 6 1 3 1 8 10 10 10 5 9 2 7 2 4 8 2 8 4 1 3 7 2 10 5 2 5 9 3 2 9 7 7 2 1 9 4 6 8 3 1 3 5 1 3 10 1 7 1 1 6 10 9 4 9 9 2 9 5 6 4 4 9 2 3 4 5 1 7 1 6 8 10 5 10 9 8 9 6 1 5 6 6 9 9 3 10 4 8 10 10 2 2 5 5 5 6
横方向に積分します
x_2 = trapz(x_1,2);
reshapeで形を整えます
x_int = reshape(x_2,s1,[])
x_int = 3×3
106.5000 94.5000 95.0000 103.5000 102.5000 107.5000 87.5000 94.0000 113.5000

1 Commento

裕登 川元
裕登 川元 il 14 Feb 2022
ご回答ありがとうございます.
理解できました.
さっそく取り組んでみたいと思います.

Accedi per commentare.

Più risposte (0)

Categorie

Prodotti

Release

R2021a

Community Treasure Hunt

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

Start Hunting!