2012-10-26 3 views
2

5 * 5 MATRICE가 있습니다. 나는 그리드의 고정 점으로부터 최소 거리에 해당하는 (i, j)의 최소값을 찾고 싶다.matlab matrice 최소값 (x, y) 쌍 값 인덱스

내가 사용 : MATRICE(find(MATRICE(1,:))== min(MATRICE(1,:)),:) 과 :

[minVal, minInd] = min(MATRICE(:,1)); 
MATRICE(minInd,1); 
[~,MATRICE_2] = min(MATRICE(:,:)); 

disp(MATRICE_2) 나에게 MATRICE의 올바른 row(i)를 얻을 수 있지만, column(j) 전혀 표시되지 않습니다.

+1

나는 무엇을 하려는지 명확하지 않습니다. 당신은 당신의 투입물과 예상 생산량에 대한 좀 더 명확한 예를들 수 있습니까? –

+0

나는 meshgrid 'x, y = meshgrid (1 : 1 : 5)'에 의해 구성된 축 포인트에 고정 점을 가진 그리드를 가지고 있습니다. 그리드에 임의의 사용자가 생성되어 균일하게 배포됩니다. 고정 소수점의 거리와 무작위 사용자의 거리는 유클리드 공식으로 측정됩니다. 또한 고정 소수점과 무작위 사용자 사이의 거리도 측정되며 결과는 MATRICE를 형성합니다. 따라서이 MATRICE는 5 * 5 좌표 거리 벡터로 구성됩니다. 이제 각 무작위 사용자를 가장 가까운 고정 소수점과 연관시키기 위해 모든 시뮬레이션 반복에서 MATRICE의 최소 x, y를 찾고 싶습니다. – professor

+0

업데이트를 주셔서 감사합니다. –

답변

1

는 내가 제대로 이해하고 있는지 확실하지 않습니다,하지만 당신은 당신의 배열에서 가장 작은 항목의 (row,col) 인덱스를 찾으려면, 당신은이

[i,j] = ind2sub(size(MATRICE), find(MATRICE==min(MATRICE(:)))) 

A이 행렬을 사용할 수 있습니다. 이 작업은 행렬을 25 개 요소의 벡터로 변경하고 가장 작은 값의 위치를 ​​찾고 을 사용하여 (row,col) 쌍으로 변환하여 작동합니다.

작성한 내용은 행렬의 모든 열에 최소 항목을 찾습니다. 따라서 i에 입력 된 MATRICE_2i 열에 최소 값의 행 인덱스를 표시합니다.

[MinValue, MinIndex] = min(MATRICE(:)); 
MinSub =ind2sub(size(MATRICE), MinIndex); 

MINVALUE가 MATRICE 및에는 minIndex 그 인덱스의 최소값 더한 직접 고정 지점을 가리키는 : 즉, 열 및 행 인덱스 i가 알아낼

cols = 1:numel(MATRICE_2); 
rows = MATRICE_2;