MATLABで構造体のフィールド名を反復処理する
2023-12-01 15:52:09
質問
私の質問を簡単にまとめると、次のようになります。 "なぜ以下は動作しないのでしょうか。
teststruct = struct('a',3,'b',5,'c',9)
fields = fieldnames(teststruct)
for i=1:numel(fields)
fields(i)
teststruct.(fields(i))
end
を出力します。
ans = 'a'
??? Argument to dynamic structure reference must evaluate to a valid field name.
特に
teststruct.('a')
は
を働かせます。そして
fields(i)
はプリントアウトします。
ans = 'a'
.
頭が回らない。
どのように解決するのですか?
中括弧(
{}
) を使って
fields
にアクセスできるようになりました。
fieldnames
関数は
セル配列
の文字列を返します。
for i = 1:numel(fields)
teststruct.(fields{i})
end
括弧を使用して を使用して、セル配列のデータにアクセスします。 を使用すると、別のセル配列が返されるだけで、文字配列とは異なる表示がなされます。
>> fields(1) % Get the first cell of the cell array
ans =
'a' % This is how the 1-element cell array is displayed
>> fields{1} % Get the contents of the first cell of the cell array
ans =
a % This is how the single character is displayed
関連
-
[解決済み】動的構造体参照の引数は、有効なフィールド名で評価する必要がある
-
[解決済み] MATLAB関数のいくつかの戻り値をエレガントに無視する方法
-
[解決済み] Matlab コマンドラインからm-fileを実行する
-
[解決済み] 異なる色の直線を自動でプロットする
-
[解決済み] MATLABで行列の各行/列に関数を適用するにはどうすればよいですか?
-
[解決済み] MATLABで特定のディレクトリの下にあるすべてのファイルを取得する方法は?
-
[解決済み] MATLABのハッシュテーブル
-
[解決済み] カクテルパーティーアルゴリズム SVD の実装 ... 1行のコードで?
-
Matlabのプロットでフォントサイズを変更する
-
Octave/Matlab ベクトルに新しい要素を追加する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] MATLAB関数のいくつかの戻り値をエレガントに無視する方法
-
[解決済み] Matlab コマンドラインからm-fileを実行する
-
[解決済み] 異なる色の直線を自動でプロットする
-
[解決済み] MATLABで行列の各行/列に関数を適用するにはどうすればよいですか?
-
[解決済み] MATLABで特定のディレクトリの下にあるすべてのファイルを取得する方法は?
-
[解決済み] MATLABのハッシュテーブル
-
[解決済み] カクテルパーティーアルゴリズム SVD の実装 ... 1行のコードで?
-
[解決済み] なぜ/いつ Octave よりも MATLAB を選ぶべきなのでしょうか?
-
Matlabのプロットでフォントサイズを変更する
-
行列で指定された値の要素の数を数えるにはどうしたらいいですか?