2014-09-24 3 views
0

2 차원 배열 중 심의 요소는 각 요소 자체가 배열입니다. centroids[1][1] 목록에 요소가 포함되어 있는지 확인하려면 어떻게해야합니까?2D 배열의 요소가 java에서 null인지 확인하려면 어떻게해야합니까?

이 코드는 작동 할 것이라고 생각했지만 그렇지 않았습니다.

for (int j=0; j<centroids[clusterAssignment[i]].length;j++) 
     if(centroids[clusterAssignment[i]].length==0) 

먼저 centroids[clusterAssignment[i]].length 때문에 나에게 무게 중심의 수의 정확한 목록을 제공하지 않으며, 단지 무게 중심이 치수 x와 y (2D)를 가지고 있기 때문에이 있음을 말해. 둘째로 배열 인 clusterAssignment[i]이 0인지 아닌지 확인하는 방법을 모르므로 사용할 수있는 모든 무게 중심 목록의 중심에 표시됩니다.

UPDATE :이 코드는 작동하지 않습니다

for (int i = 0; i < centroids.length; i++){ 
        //System.out.println("centroids[clusterAssignment[i]] "+ Arrays.toString(centroids[clusterAssignment[i]])); 
        //System.out.println("clusterassignment of centroid is"+centroids[clusterAssignment[i]]); 
        for (int j=0; j<centroids[clusterAssignment[i]].length;j++) 
        // System.out.println("cluster assignment of centroid is: "+Arrays.toString(centroids[clusterAssignment[i]])); 
        if (centroids[clusterAssignment[i]] == null){ 
         //save the centroid number if there's no point assigned to it 
         orphanCentroid = i; 
         System.out.println("orphan centroid i is "+i); 
         hasOrphanCentroid=true; 
         break; 
        } 
       } 
+2

'무게 중심 [clusterAssignment [내가]] == null' –

+0

이 작동되지 않습니다. centroids 길이는 항상 2이기 때문에 내부 배열을 조사하지 않습니다! –

+0

'centroid'의 유형은 무엇입니까? 또한 clusterAssignment는 무엇을 나타 냅니까? – Multithreader

답변

0

이 시도 :

for (int j=0; j<centroids[clusterAssignment[i]].length;j++) 
     if(centroids[clusterAssignment[i]]==null) 
관련 문제