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

7 vues (au cours des 30 derniers jours)
裕登 川元
裕登 川元 le 14 Fév 2022
Commenté : 裕登 川元 le 14 Fév 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を用いて計算しようとしています.

Réponse acceptée

Hernia Baby
Hernia Baby le 14 Fév 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 commentaire
裕登 川元
裕登 川元 le 14 Fév 2022
ご回答ありがとうございます.
理解できました.
さっそく取り組んでみたいと思います.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur 数値積分と微分 dans Help Center et File Exchange

Produits


Version

R2021a

Community Treasure Hunt

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

Start Hunting!