多维缩放矩阵错误

时间:2014-03-03 13:19:38

标签: matlab multi-dimensional-scaling

我正在尝试在Matlab中使用多维缩放。目标是将相似性矩阵转换为散点图(以便使用k均值)。

我有以下测试集:

London  Stockholm   Lisboa  Madrid  Paris   Amsterdam   Berlin  Prague  Rome    Dublin
0       569         667     530     141     140         357     396     570     190
569     0           1212    1043    617     446         325     423     787     648
667     1212        0       201     596     768         923     882     714     714
530     1043        201     0       431     608         740     690     516     622
141     617         596     431     0       177         340     337     436     320
140     446         768     608     177     0           218     272     519     302
357     325         923     740     340     218         0       114     472     514
396     423         882     690     337     272         114     0       364     573
569     787         714     516     436     519         472     364     0       755
190     648         714     622     320     302         514     573     755     0

我从Modern Multidimensional Scaling(Borg& Groenen,2005)一书中得到了这个数据集。使用PROXSCAL MDS方法在SPSS中对其进行测试,得到与本书中所述相同的结果。

但是我需要在Matlab中使用MDS来加速这个过程。网站上的教程:http://www.mathworks.nl/help/stats/multidimensional-scaling.html#briu08r-4看起来和我上面使用的相同。当我将数据集更改为上面显示的内容并运行代码时,我收到以下错误:“不是有效的相异性或距离矩阵。”。

我不确定我做错了什么,如果经典的MDS是正确的选择。我也错过了说我想要三维结果的可能性(这将在以后阶段需要)。

1 个答案:

答案 0 :(得分:0)

您的矩阵不对称,请检查索引(9,1)(1,9)。要快速查找非对称索引,请使用[x,y]=find(~(D'==D))