我正在使用 Matlab API 将数据从专有格式加载到一系列结构中。这是加载文件后数据集的示例:
>>字段名(数据(1))
答案=
'Grid_Point_ID' 'Grid_Point_Latitude' 'Grid_Point_Longitude' 'Grid_Point_Altitude' 'Grid_Point_Mask' 'BT_Data'
>> 数据(1).BT_Data
答案=
BT_Data: [1x66 struct]
>> 字段名(数据(1).BT_Data(1))
答案=
'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'
我想遍历所有data(i).BT_Data(j)
. 我已经得到了data
罚款的长度,但我无法得到BT_Data
(每个都不同data(i)
)的大小/长度:
>> 长度(数据(1).BT_Data)
答案=
1
>> 大小(数据(1).BT_Data)
答案=
1 1
我在这里的预期结果是ans = 66
(或等效的数组size()
)。
我对结构数据格式不是很熟悉,这可能是我努力的一部分。但是length(data)
工作得很好,所以我很困惑为什么它不起作用BT_Data
(我也试过BT_Data(:)
)。
我能找到的最相关的先前答案是1757250,但我无法让它工作(我认为它不适用于这里)。感谢您提供的任何见解。
------
编辑------
这里有一些关于我必须如何使用 API 才能达到我所处的位置的更多见解:
>> 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');
路径(路径,'/opt/rwapi-matlab');>> 产品 = RWAPI.product('SM_OPEB_MIR_SCLF1C_20110202T013659_20110202T014642_346_060_1')
Array SMOS Matlab 接口版本 1.4
(c) 2010 Array Systems Computing Inc. of Canada ( http://www.array.ca )
分发或修改此软件需要 Array 的书面许可产品 =
RWAPI.product handle Package: RWAPI Properties: filename: 'SM_OPEB_MIR_SCLF1C_20110202T013659_20110202T014642_346_060_1' header: [1x1 struct] xml_datablock: []
方法、事件、超类
>> 数据 = prod.dataset(2)
数据 =
没有属性的 RWAPI.dataset 句柄。包:RWAPI
方法、事件、超类
>> 数据(1)
答案=
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]
>> 数据(1).BT_Data
答案=
BT_Data: [1x66 struct]
>> 数据(1).BT_Data(1)
答案=
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
>> whos
名称大小字节类属性ans 1x1 1 逻辑
数据 1x19091 112 RWAPI.dataset
prod 1x2 112 RWAPI.product