メンバ変数に行列を持つ構造体の配列について, その行列の特定の要素を配列で平均したい

9 visualizaciones (últimos 30 días)
Daiki Sekizawa
Daiki Sekizawa el 10 de Mzo. de 2020
Comentada: Daiki Sekizawa el 13 de Mzo. de 2020
メンバ変数に行列を持つ構造体の配列について, その行列の特定の要素を配列で平均したいと考えていますが, 「中かっこまたはドット インデックス式からの必要な出力は 1 つですが、2 個の結果があります。」とのエラーが出ます.
目的を達成するコードを無理やりforループで書くことは可能ですが, 「mean(a(:).b(1,1))」のようにすっきりと簡潔に書くことはできないのでしょうか.
>> a(1).b=rand(2)
a =
フィールドをもつ struct:
b: [2×2 double]
>> a(2).b=rand(2)
a =
フィールドをもつ 1×2 の struct 配列:
b
>> a(:).b % 中身の確認
ans =
0.8147 0.1270
0.9058 0.9134
ans =
0.6324 0.2785
0.0975 0.5469
>> mean(a(:).b(1,1)) %これがやりたい処理. 平均を計算しようとするとエラーが出る
中かっこまたはドット インデックス式からの必要な出力は 1 つですが、2 個の結果があります。
>> a(:).b(1,1) %平均以前に要素にアクセスしようとしただけでエラーが出る
中かっこまたはドット インデックス式からの必要な出力は 1 つですが、2 個の結果があります。

Respuesta aceptada

Akira Agata
Akira Agata el 11 de Mzo. de 2020
以下の方法ではいかがでしょうか?
% 構造体配列からフィールド b の (1,1) 要素だけを抽出
c = arrayfun(@(x) x.b(1,1), a);
% 平均値を計算
c_av = mean(c);
  1 comentario
Daiki Sekizawa
Daiki Sekizawa el 13 de Mzo. de 2020
できました
ありがとうございます

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre 構造体 en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!