2

Matlab に 1x280 構造があります。値を使用するために、struct2cell配列に変更しました。

280 の構造のうちの 1 つがどのように見えるかの例を以下に示します。

Field       Value               Min       Max

point1      [29,469]            29        469
point2      [42,469]            42        469
-------------------------------------------

以下のコードを使用して cell 配列に変更した後:

showlines = struct(lines);
cellData = struct2cell(showlines);


cellData{1,1}(1) 
    = 29

ただし、これを使用すると:

cellData{1,1:280}(1);

エラーがあります

Error:: bad cell reference operation

280 個の構造体のすべてのx値をpoint1配列に保持して、それらの最大X値を見つける必要がpoint1あります。それを行う方法はありますか?

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

4

1 に答える 1

1

あなたの質問に対する直接的な回答ではありませんが、興味があるかもしれません。

%# some example data
S(1).point1 = [29 469];
S(1).point2 = [42 469];

S(2).point1 = [30 470];
S(2).point2 = [43 470];

...

S(280).point1 = [130 870];
S(280).point2 = [243 970];

%# transform to regular array
pt1 = reshape([S.point1],[],2).';
pt2 = reshape([S.point2],[],2).';

結果として

pt1 = [29   469       pt2 = [42   469
       30   470              43   470
       ...                   ... 
       130  870];            243  970];

これにより、次のことが可能になります

>> pt1(:, 2)
ans = 
    469
    470
    ..
    870

>> min(pt1(:,1))
ans = 
    29

それはあなたの問題を解決しますか?

通りすがりの人へ:[S.field]非スカラーの表記法は何とstructs呼ばれていますか?名前もありますか?この手法に関する質問が頻繁にポップアップ表示されます。回答にマニュアルページへのリンクを投稿できるように、その名前を知っていれば役立ちます...

于 2012-08-30T13:56:32.033 に答える