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

6 views (last 30 days)
裕登 川元
裕登 川元 on 14 Feb 2022
Commented: 裕登 川元 on 14 Feb 2022
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を用いて計算しようとしています.

Accepted Answer

Hernia Baby
Hernia Baby on 14 Feb 2022
配列の形をうまく変更してやってみましょう。
データを用意します。
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 Comment
裕登 川元
裕登 川元 on 14 Feb 2022
ご回答ありがとうございます.
理解できました.
さっそく取り組んでみたいと思います.

Sign in to comment.

More Answers (0)

Categories

Find more on 数値積分と微分 in Help Center and File Exchange

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!