3

構造体フィールドの名前に、forループで与えられた数値である貴重なものを割り当てようとしています。たとえば、次のようにしたいと思います。

A.bx。ここで、A は構造体の名前 (= char)、b はフィールド名の一部 (= char)、x は for ループによって与えられる値です。A と b は固定または事前定義されています。

コメントをお待ちしております。

4

2 に答える 2

4

genvarname(str,list)[a string] に有効な変数名を生成しますstr。各反復値strは除外リストとは異なります

そして fieldname(S) 、すでに構造内にあるフィールドのすべての名前のリストを返しますS(これを使用して除外リストを作成します)

必要なもののコードは次のとおりです。

A = struct ();
for i = 1:5
    A.(genvarname ('b', fieldnames (A))) = i;
end



1. 2. について読むgenvarname(str,list)
fieldnames(S)

于 2013-11-15T03:50:21.550 に答える
1

シンプルを使用して構造体フィールドに名前を付けることができますsprintf

A = struct()
for ii = 1:10
    fn = sprintf('b%d', ii );
    A.(fn) = ii; % use the struct
end

私は、このタイプのフィールド命名よりも配列またはセルを使用することを提案したセバスチャンに同意する傾向があります。セルと配列に加えて、containers.Map非常に用途が広く便利であることがわかるかもしれません。

于 2013-11-15T08:50:05.013 に答える