【发布时间】:2014-02-18 11:45:25
【问题描述】:
假设我在 Matlab 中有以下向量:
V = [4, 5, 5, 7];
如何列出(例如在 n×2 矩阵中)与向量中不相等元素对应的所有索引对。例如对于这个特定的向量,索引对将是:
index pairs (1, 2) and (1, 3) corresponding to element pair (4,5)
index pair (1, 4) corresponding to element pair (4,7)
index pairs (2, 4) and (3, 4) corresponding to element pair (5,7)
我需要这个的原因是因为我有一个成本函数,它以V 之类的向量作为输入并产生一个成本值。
我想看看向量中两个不同元素的随机交换如何影响成本值(将其用于最陡下降的爬山)。
索引对的顺序也无关紧要。就我而言,(1,2) 与 (2,1) 相同。
例如,如果我的成本函数是 evalCost(),那么我可以有 V = [4, 5, 5, 7] 和
evalCost(V) = 14
而W = [4, 7, 5, 5] 的成本可能是:
evalCost(W) = 10
如何在 Matlab 中获取“交换”对索引的列表。希望我的问题很清楚 =)
【问题讨论】:
-
这是一种完全不同的方法,但我相信
pdist2可能会让你开心。