たとえば、サイズが n*1 の I という構造体があり、複数のフィールドがあり、そのうちの 1 つが「area」と呼ばれているとします。以下のコードを試すと:
area = I.area
結果の領域には、構造体の最後の位置からの値が 1 つだけ含まれます。次のように for ループを使用する以外に、フィールド内のすべての値を正確に正確にする高速な方法はありますか。
for ii = 1:n; area(ii) = I(ii).area; end
たとえば、サイズが n*1 の I という構造体があり、複数のフィールドがあり、そのうちの 1 つが「area」と呼ばれているとします。以下のコードを試すと:
area = I.area
結果の領域には、構造体の最後の位置からの値が 1 つだけ含まれます。次のように for ループを使用する以外に、フィールド内のすべての値を正確に正確にする高速な方法はありますか。
for ii = 1:n; area(ii) = I(ii).area; end
area = [I.area]
I.area
I(1).area
, ...のすべての値をI(2).area
コンマ区切りのリストとして返します。このリストは、関数のパラメータ リストや配列の初期化など、そのようなリストが期待される場所ならどこにでもプラグインできます。
編集: すべてI(i).area
が同じサイズの行ベクトルの場合。次に、最初にそれらすべてを水平に連結してから、目的の寸法に形状を変更できます。
area = reshape([I.area], [2 length(I)])'
結果:
>> I.area
ans =
3 4
ans =
5 6
ans =
7 8
>> reshape([I.area], [2 length(I)])'
ans =
3 4
5 6
7 8