2

私はサイズが1X36の構造Vinluを持っています:

        Vinlu = 

        vessel: [1x36 struct]

そして、それぞれに5つのフィールドがあります。

Vinlu.vessel

        ans = 

        1x36 struct array with fields:
        pixels
        indexNOmask
        indexWHOLEvessel
        widths
        Meanwidth

ピクセルフィールドが空であるいくつかの血管フィールドがあります。例:

Vinlu.vessel(1,4)

   ans = 

              pixels: [0x2 double]
         indexNOmask: [0x1 double]
    indexWHOLEvessel: [0x1 double]
              widths: [1x0 single]
           Meanwidth: NaN

ピクセルフィールドが空の構造からこれらの血管フィールドをすべて削除したい(他のフィールドに関係なく)。容器内の1つ以上のフィールドが空である可能性がありますが、ピクセルフィールドが空のフィールドを削除して、サイズ1Xnの構造Vinluを取得します。ここでn<36

4

1 に答える 1

7

まずvessel、空のpixelsフィールドを持つ構造体のインデックスを見つけます。

idx = cellfun('isempty', {Vinlu.vessel.pixels});

vessel次に、空でないpixelsフィールドを持つ要素のみを保持します。

Vinlu.vessel = Vinlu.vessel(~idx);

そのように見えるワンライナーで:

Vinlu.vessel = Vinlu.vessel(~cellfun('isempty', {Vinlu.vessel.pixels}))
于 2013-01-29T13:16:24.423 に答える