2016-08-08 20 views
0

私は5つの異なる構造を持っており、それらのすべての変数を計算したいと思います。これを行うには、私は次のコードを書いた:MATLAB構造体変換エラー

for i=1:5 
[StructureI(i), ReqTab(i), jt(i), B(i)]=Checkall(E); 
end 

StructureI, ReqTab, jt and Bは別の関数で計算されていると私はそれが機能Checkall内のすべてのvariblesを計算し、コードを実行すると、彼らは

StructureI= 1X4 matrix, 
ReqTab= 4X2 matrix, 
jt=2x1 matrix, 
B=4x4 matrix 

です。ただし、親コードに切り替えると、「構造体から倍精度に変換することはできません」というエラーが表示されます。

どうすればこの問題を解決できますか?

ありがとうございます。

+0

あなたが言及している構造にはそれぞれ1つの行列しか含まれていません。なぜあなたは構造物を使っていますか? 2D行列として 'StructureI'を返すだけで、第3次元を使用して各ループにdirrefernt結果を格納することはできませんか? (他の3つのvarsと同じ) –

答えて

1

あなたが代わりにあなたがに割り当てる特定のフィールドfield_nameを記述する必要があり、二重の構造体に直接割り当てることはできません。(またReqTabjtBすなわち)これらの変数のすべての場合

[StructureI(i).field_name, ReqTab(i), jt(i), B(i)] = Checkall(E); 

は構造であり、もちろん、.表記を使用して、それぞれのフィールドにフィールドを指定する必要があります。

しかし、コメントに記載されているように、ループのすべての反復は同じです(iは使用されません)。なぜこのループが必要ですか?ちょうど5枚を作るのですか?

+0

これは機能します。どうもありがとう – user70299

関連する問題