使用MatLab,我有一个2D矩阵,我想从中采样。这个位置每次都是已知和固定的。
嵌套的For循环很慢。目前我正在使用逻辑索引,例如
cords = [ 1 0 1; 0 0 0 ]; cords = logical(cords)
data = aMatrix(cords);
我的主要问题是:有比这更快的方法吗?
我通过使用逻辑索引进行的另一个查询,每次都以相同的顺序对数据进行采样,这很重要。
答案 0 :(得分:0)
逻辑索引通常比线性索引或下标更快,可能是因为通常调用find
。如果您有逻辑矩阵,请使用它。如果您有线性索引,请使用它们。不要试图转换只是为了加快实际的索引步骤。
从逻辑索引获得的输出data
的顺序与find(cords)
返回的索引的顺序相同(线性索引)。
答案 1 :(得分:0)