特定群集中的矩阵转换结构

时间:2016-07-25 11:58:00

标签: javascript csv d3.js matrix

我试图将计算欧几里德距离并将其形式为矩阵后得到的距离矩阵转换为手动定义的聚类模式。 在我的情况下,这是矩阵假设哪个正常模式 Normal Matrix with Cluster Order 1234

假设这是所需的群集顺序,我必须转换,即从 1 2 3 4 转换为 3 1 2 4 ,我希望有类似的东西。我不想手动操作,因为我的矩阵大小是40 X 40。 enter image description here

它没有点击我的想法,我可以编码,但算法不会出现在我的脑海中。如果你可以提供帮助,或者有人之前做过类似的事情。请帮我解决。

我尝试在d3.csv的帮助下从csv读取数据,这样可以得到1234的预期结果:

d3.csv("final.csv", function(loadeddata) {
mydata = loadeddata.map(function(d) {return [+d["1"], +d["2"] , +d["3"], +d["4"]] ;});

d3.csv("final.csv", function(loadeddata) {
mydata = loadeddata.map(function(d) {return [+d["3"], +d["1"] , +d["2"], +d["4"]] ;});

这样我就可以得到所需聚类格式的矩阵,但它不起作用,因为它将整列移动到所需的位置,但不会移动元素。

这是我做的另一个尝试

            var iMax = 4;
            var jMax = 4;
            var newdata = new Array();

            for (i=0;i<iMax;i++) {
               newdata[i]=new Array();
              for (j=0;j<jMax;j++) {
              newdata[i][j]=0;
             }
            }
var arraycomb = [3,1,2,4];

          for ( i = 0; i < 4; i++) { 
              for ( j = 0; j < 4; j++) {

                newdata[arraycomb[i]][arraycomb[j]] = mydata[i][j];

              }
              } 

0 个答案:

没有答案