[解決済み】MATLABのエラー「この課題にはスカラー構造が必要です」は、この文の何を指しているのか?
2022-01-27 21:17:43
質問内容
ある構造体があります。
space_averaged_data
を持ち、そのメンバーは
Ps
は、長さが可変のセル配列として定義されています。構造体を作成した後、このセル配列に値を代入すると、以下のようになります(わかりやすくするために、他の構造体フィールドは省略しています)。
Ps = cell( 1, num_p );
for p = 1:length(Ps)
Ps{p} = rand( 150, 1000 );
end
space_averaged_data = struct( 'Ps', cell( 1, length(Ps) ) );
for p = 1:length(Ps)
space_averaged_data.Ps{p} = mean( Ps{p}, 2 );
end
の値が
num_p
が1であれば(つまり、セル配列が配列でなければ)、すべてうまくいきます。もし
num_p
が1より大きい場合、以下のエラーが発生します。
Scalar structure required for this assignment.
Error in:
space_averaged_data.Ps{p} = mean( Ps{p}, 2 );
この課題におけるノンスカラ構造とは? エラーが何を指しているのかさっぱりわかりません。
どうすればいいですか?
を作成します。
1x5
struct
の配列になります。 を引用すると
struct
ドキュメント
:
もし
value
がセル配列である場合s
と同じ次元の構造体配列です.value
. の各要素はs
の対応する要素を含んでいます。value
.
式の第2引数は
struct( 'Ps', cell( 1, length(Ps) ) )
は
1x5
cell
の場合、出力は
struct
は
1x5
struct
の配列で、適切な代入を行います。
for
-ループは次のようになります。
space_averaged_data(p).Ps = mean( Ps{p}, 2 );
希望する動作を得るには、第2引数を
{}
にして、それを
1x1
cell
の配列になります。
space_averaged_data = struct( 'Ps', {cell( 1, length(Ps) )} );
と、その
for
-ループは期待通りに動作するはずです。
関連
-
[解決済み】MATLABのエラー「この課題にはスカラー構造が必要です」は、この文の何を指しているのか?
-
[解決済み] セルコンテンツから非セル配列オブジェクトへの代入
-
[解決済み] MATLAB : 周波数分布
-
[解決済み] エラー --> 整数には同じクラスの整数か、スカラー倍数しか組み合わせることができません。
-
[解決済み] Matlabのstrcat関数が空白を含んでいる場合のトラブル
-
[解決済み] MATLABとラスタープロット
-
[解決済み] Matlabで3角形の行列を作るループをベクトル化する
-
[解決済み] キュービックスプライン補間と多項式補間の比較
-
[解決済み] Ax = B の形の行列を解く ==> エラー。行列が特異に近い、またはスケールが悪い
-
[解決済み] 行列の列数を求めるには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「Index exceeds the number of array elements (1)」というエラーを修正するにはどうすればよいですか?
-
[解決済み] double 型の入力引数に対して未定義の関数 'int' が存在する [重複] 。
-
[解決済み] MATLABで1つの点の最近傍を検索する
-
[解決済み] 部分ピボットによるガウス消去の実装【終了しました
-
[解決済み] エラー: 等号の左側にある式は代入の対象として有効ではありません Matlab
-
[解決済み] 演算子のオペランドは、論理スカラー値に変換可能でなければならない。
-
[解決済み] Matlab: 逆コサイン(acos)の完全解を返す
-
[解決済み] プロットを回転させる?
-
[解決済み] Wolfram AlphaとMATLABでは伝達関数のプロットが異なる
-
[解決済み] 指定された矩形に含まれる配列中の点を見つける( matlab )