访问深度嵌套在结构数组中的元胞数组的值
Access Values of Cell Array deeply nested within Structure Array
我有一个嵌套的 structure_array/cell_array/structure_array 字符值,这是网络查询的结果,returns 一个转换的 JSON 对象,我需要的数值可以这样循环访问:
for ix = 1 : size( S.orderBook.buckets , 2 )
if ( str2double( S.orderBook.buckets{ ix }.price ) >= str2double( S.orderBook.price ) )
mid_ix = ix ;
break ;
endif
endfor
上述循环获取感兴趣区域中间单元格的索引mid_ix,并且
orderbook_begin_ix = mid_ix - 20 ; orderbook_end_ix = mid_ix + 20 ;
jj = 0 ;
for ix = orderbook_begin_ix : orderbook_end_ix
jj = jj + 1 ;
new_orderbook_data( 1 , jj ) = str2double( S.orderBook.buckets{ ix }.longCountPercent ) ;
endfor
第二个循环用感兴趣的值填充预初始化矩阵 new_orderbook_data。
不过,我想知道是否有 quicker/more 优雅的方法来获取这些值?目前,如上所示,我必须 运行 一个包含 "if statement" 的 "look up" for 循环以进入所需数值的范围,然后 运行 在球场区域中的第二个 for 循环以提取这些所需的值。
注意:交叉张贴在 Octave forum
我想我已经使用以下语法解决了这个问题:
prices = cellfun( @str2double , { [ S.orderBook.buckets{:} ].price } ) ;
这给了我一个矩阵 "prices",我可以在其中进一步应用矢量化代码。
解释:-
- { : } 将元胞数组中的价格提取到逗号中
分隔列表,
封闭的 [ ] 将此列表放入结构数组,
[ ].price 仅提取价格,然后将其放回
包含最外层 { }
的元胞数组
然后通过应用
cellfun 对此价格元胞数组和
最后都赋值给了"prices"矩阵
我有一个嵌套的 structure_array/cell_array/structure_array 字符值,这是网络查询的结果,returns 一个转换的 JSON 对象,我需要的数值可以这样循环访问:
for ix = 1 : size( S.orderBook.buckets , 2 )
if ( str2double( S.orderBook.buckets{ ix }.price ) >= str2double( S.orderBook.price ) )
mid_ix = ix ;
break ;
endif
endfor
上述循环获取感兴趣区域中间单元格的索引mid_ix,并且
orderbook_begin_ix = mid_ix - 20 ; orderbook_end_ix = mid_ix + 20 ;
jj = 0 ;
for ix = orderbook_begin_ix : orderbook_end_ix
jj = jj + 1 ;
new_orderbook_data( 1 , jj ) = str2double( S.orderBook.buckets{ ix }.longCountPercent ) ;
endfor
第二个循环用感兴趣的值填充预初始化矩阵 new_orderbook_data。
不过,我想知道是否有 quicker/more 优雅的方法来获取这些值?目前,如上所示,我必须 运行 一个包含 "if statement" 的 "look up" for 循环以进入所需数值的范围,然后 运行 在球场区域中的第二个 for 循环以提取这些所需的值。
注意:交叉张贴在 Octave forum
我想我已经使用以下语法解决了这个问题:
prices = cellfun( @str2double , { [ S.orderBook.buckets{:} ].price } ) ;
这给了我一个矩阵 "prices",我可以在其中进一步应用矢量化代码。
解释:-
- { : } 将元胞数组中的价格提取到逗号中 分隔列表,
封闭的 [ ] 将此列表放入结构数组,
[ ].price 仅提取价格,然后将其放回 包含最外层 { }
的元胞数组
然后通过应用 cellfun 对此价格元胞数组和
最后都赋值给了"prices"矩阵