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 Arrayprod =
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 Attributeans 1x1 1 logisch
Daten 1x19091 112 RWAPI.dataset
prod 1x2 112 RWAPI.product