У меня есть вложенные struct_array / cell_array / structure_array символьных значений, которые являются результатом веб-запроса, который возвращает преобразованный объект JSON, необходимые числовые значения c, к которым я могу обращаться в циклах, таким образом :
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
Приведенный выше l oop получает индекс 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
в этот второй l oop заполняет предварительно инициализированную матрицу new_orderbook_data интересующими значениями.
Однако мне было интересно, существует ли более быстрый / более элегантный способ получения этих значений? На данный момент, как видно из приведенного выше, мне нужно выполнить «поиск» для l oop, который включает в себя «утверждение if», чтобы получить приблизительный номер требуемых чисел c, а затем выполнить второй для l oop в области приблизительного значения, чтобы извлечь эти требуемые значения.
Примечание: кросс опубликован на Октавском форуме