3 Stimmen

Größe einer Struktur innerhalb einer anderen Struktur in Matlab (R2010a 64-bit linux)

Ich arbeite mit einer Matlab-API, die Daten aus einem proprietären Format in eine Reihe von Strukturen lädt. Hier ist ein Beispiel dafür, wie ein Datensatz nach dem Laden einer Datei aussieht:

>>Feldbezeichnungen(data(1))

an =

'Grid_Point_ID'
'Grid_Point_Latitude'
'Grid_Point_Longitude'
'Grid_Point_Altitude'
'Grid_Point_Mask'
'BT_Data'

>> data(1).BT_Data

an =

BT_Data: [1x66 struct]

>> Feldnamen(Daten(1).BT_Data(1))

an =

'Flags'
'BT_Value_Real'
'BT_Value_Imag'
'Pixel_Radiometric_Accuracy'
'Incidence_Angle'
'Azimuth_Angle'
'Faraday_Rotation_Angle'
'Geometric_Rotation_Angle'
'Snapshot_ID_of_Pixel'
'Footprint_Axis1'
'Footprint_Axis2'

Ich möchte eine Schleife über alle data(i).BT_Data(j) . Ich habe bereits die Länge der data gut, aber ich kann die Größe/Länge der BT_Data (die für jeden Fall unterschiedlich ist data(i) ):

>> Länge(Daten(1).BT_Data)

an =

 1

>> Größe(Daten(1).BT_Data)

an =

 1     1

Mein erwartetes Ergebnis ist hier ans = 66 (oder ein entsprechendes Feld für size() ).

Ich bin nicht sehr vertraut mit dem Format der Strukturdaten, was vielleicht ein Grund für meine Schwierigkeiten ist. Aber length(data) funktionierte einwandfrei, deshalb bin ich verwirrt, warum es nicht funktioniert bei BT_Data (Ich habe auch versucht BT_Data(:) ).

Die wichtigste frühere Antwort, die ich finden konnte, lautet 1757250 aber ich konnte es nicht zum Laufen bringen (ich denke, es trifft hier nicht zu). Vielen Dank für jede Einsicht, die Sie zur Verfügung stellen können.

------ EDIT ------

Hier ein kleiner Einblick, wie ich die API verwenden muss, um überhaupt an den Punkt zu gelangen, an dem ich jetzt bin:

>> system('ln -sf /opt/rwapi-matlab/lib/rwapi/smos/config/xml_rw_api.usr_conf.xml .');
setenv('XML_RW_API_HOME','/opt/rwapi-matlab/lib/rwapi');
path(path,'/opt/rwapi-matlab');

>> prod = RWAPI.product('SM_OPEB_MIR_SCLF1C_20110202T013659_20110202T014642_346_060_1')

Array SMOS Matlab Schnittstelle Version 1.4
(c) 2010 Array Systems Computing Inc. aus Kanada ( http://www.array.ca )
Die Weitergabe oder Veränderung dieser Software erfordert eine schriftliche Genehmigung von Array

prod =

RWAPI.product handle
Package: RWAPI

Properties:
     filename: 'SM_OPEB_MIR_SCLF1C_20110202T013659_20110202T014642_346_060_1'
       header: [1x1 struct]
xml_datablock: []

Methoden, Ereignisse, Superklassen

>> Daten = prod.dataset(2)

Daten =

RWAPI.dataset-Handle ohne Eigenschaften. Paket: RWAPI

Methoden, Ereignisse, Superklassen

>> Daten(1)

an =

       Grid_Point_ID: 251721
 Grid_Point_Latitude: 25.5000
Grid_Point_Longitude: -102.2590
 Grid_Point_Altitude: 1.4714e+03
     Grid_Point_Mask: 2
             BT_Data: [1x66 struct]

>> data(1).BT_Data

an =

BT_Data: [1x66 struct]

>> data(1).BT_Data(1)

an =

                     Flags: 6229
             BT_Value_Real: 262.5275
             BT_Value_Imag: 0
Pixel_Radiometric_Accuracy: 6160
           Incidence_Angle: 31966
             Azimuth_Angle: 10299
    Faraday_Rotation_Angle: 65277
  Geometric_Rotation_Angle: 58605
      Snapshot_ID_of_Pixel: 65752530
           Footprint_Axis1: 19649
           Footprint_Axis2: 14625

>> wessen
Name Größe Bytes Klasse Attribute

ans 1x1 1 logisch
Daten 1x19091 112 RWAPI.dataset
prod 1x2 112 RWAPI.product

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X