使用MatLab,我有一個二維矩陣,我想從中抽樣。該位置是已知的並且每次都是固定的。Matlab從二維矩陣進行高效快速採樣
嵌套的For循環很慢。目前我正在使用邏輯索引,例如
cords = [ 1 0 1; 0 0 0 ]; cords = logical(cords)
data = aMatrix(cords);
我的主要問題是:有沒有比這更快的方法?
通過使用邏輯索引,我有另一個查詢是否每次都以相同的順序對數據進行採樣,這很重要。
使用MatLab,我有一個二維矩陣,我想從中抽樣。該位置是已知的並且每次都是固定的。Matlab從二維矩陣進行高效快速採樣
嵌套的For循環很慢。目前我正在使用邏輯索引,例如
cords = [ 1 0 1; 0 0 0 ]; cords = logical(cords)
data = aMatrix(cords);
我的主要問題是:有沒有比這更快的方法?
通過使用邏輯索引,我有另一個查詢是否每次都以相同的順序對數據進行採樣,這很重要。
邏輯索引通常比線性索引或下標更快,可能是由於通常撥打find
。如果您有邏輯矩陣,請使用它。如果您有線性索引,請使用它們。不要試圖轉換隻是爲了加快實際的索引步驟。
從邏輯索引獲得的輸出data
的順序與find(cords)
(線性索引)返回的索引順序相同。