0
我已經被賦予了將一段MATLAB代碼翻譯爲IDL的任務,並且當我遇到MATLAB函數accumarry()時遇到了一個障礙( )。 here 的 函數用於根據另一箇中給出的索引來求和一個數組中的元素。示例 1可能比頁面頂部 處的實際功能說明更好地解釋了這一點。在嘗試重現IDL中的示例1時,我無法避免使用for循環,但我相信這是可能的。我最好的嘗試如下:IDL等價於MATLAB函數accumarray()
vals = [101,102,103,104,105]
subs = [0,1,3,1,3]
n = max(subs)+1
accum = make_array(n)
for i = 0, n-1 do begin
wVals = where(subs eq i,count)
accum[i] = count eq 0 ? 0 : total(vals[wVals])
endfor
print,accum
; 101.000 206.000 0.00000 208.000
任何意見,以改善這將不勝感激!我預計IDL有一個類似的內置功能,但一直沒能跟蹤。也許一些魔術與直方圖裝箱?