我将使用 find
从一个矩阵(名为 lag
)中获取索引,然后将它们从另一个矩阵(H
)中的对应值相加).这将需要一个 for
循环。 (矩阵是二维的。)
(此处使用max
来暗示一个通用示例)
D=zeros(max, 1)
for j = 1:max
ind = find(lag==j)
D(j) = sum(H(ind))
end
这是一个 4 点示例。点位于 (1,1)、(1,2)、(2,1)、(2,2)。这是地统计学方法的一部分。 H
中计算了所有点之间的距离。 lags
是 H
但向下舍入然后加 1 以将距离与其最接近的整数相关联(称为滞后的分类)。我现在想将每个 lag
的总距离加到向量 D
中。
lag
(4x4) - 存储一般滞后间隔
1 2 2 2
2 1 2 2
2 2 1 2
2 2 2 1
H
(4x4) - 存储点之间的距离
0 1 1 1.414
1 0 1.414 1
1 1.414 0 1
1.414 1 1 0
我可以在没有 for
循环的情况下做到这一点吗?
最佳答案
关于matlab - 使用 "find"命令累加值 "without for loops",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33137591/