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

6 ビュー (過去 30 日間)
裕登 川元
裕登 川元 2022 年 2 月 14 日
コメント済み: 裕登 川元 2022 年 2 月 14 日
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を用いて計算しようとしています.

採用された回答

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

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

その他の回答 (0 件)

カテゴリ

Help Center および File Exchange数値積分と微分 についてさらに検索

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!