0

次の方法で、構造体「str」の配列「AoS」を生成します。

for i = 1:iMax
    for j = 1:jMax
        str = calculatestructure();
        AoS(i,j) = str;
    end
end

ここで、構造体に str.field1、str.field2 の 2 つのフィールドがあるとします。AoS の I 番目と J 番目の要素の str.field1 の値を取得したいのですが、使用したメソッドに従って次のエラーが発生します。2 つの方法のいずれかを使用すると、「存在しないフィールド 'field1' への参照」というエラーが表示されます。

value = AoS(I,J).field1; % method 1
value = AoS.field1(I,J); % method 2

何か案が?構造体の配列にアクセスする特別なコマンドはありますか? ここここ、およびここに示されているヘルプは、実際にはこの問題には役に立ちません。

どうもありがとうございました。

4

1 に答える 1

0

calculatestructure() の出力は確かですか? 私はテストしました:

for i = 1:10
    for j = 1:10
        str = struct();
        str.field1=1;
        str.field2=2;
        AoS(i,j) = str;
    end
end
AoS(1,1).field1

そして、構造体 AoS の配列の 1,1 の位置にある構造体のフィールド field1 を取得します。たぶん、 calculatestructure() は、あなたが考えているフィールドを持つ構造体を出力しません。AoS は本当に iMax x jMax 構造体配列で、各要素には field1 フィールドがありますか?

于 2013-03-28T10:18:31.220 に答える