2009-12-07 3 views
-1
data = rand(N,2);    %# generate random points 
index = (rand(N,1) <= p);  %# roll coins to pick with prob p 
data(~index, :) = [];   %# keep only selected points 
plot(x(index),y(index),'r*'); 

dist=sqrt((data(1,1)-data(~index,1))^2+(data(1,2)-data(~index,2))^2); % ques is what to put for data(~index,:) 's first or any element? 

우리가 data(~index, :) = [];의 어떤 지점에서 data=rand(N,2) (첫번째 말)의 어느 지점 사이의 거리를 찾을 수있다, 어떻게 우리 수 (처음이의 말) 다음 문에 data(~index, :) = []; 행렬을 사용 하시겠습니까? 우리는 우리가 data(~index,:) 행렬의 첫 번째 요소을 가지고 어떻게, data(1,1)data (1,2)data의 첫 번째 요소를 복용으로어떻게 매트릭스를 다음에서 특정 요소를 선택하려면? (MATLAB에서)

dist=sqrt((data(1,1)-data(~index,1))^2+(data(1,2)-data(~index,2))^2) 

내 질문은?

답변

2

나는 무엇을하고 싶은지 잘 모르겠습니다.

명령 data(~index, :) = []은 난수가 p보다 큰 모든 행을 제거하므로 명령 data은 더 이상 N 행 2 열이 아니지만 더 작은 행렬이됩니다. 그 명령을 내리지 않을 것이라고 가정하겠습니다. 이후에는 더 이상 data의 제거 된 지점을 참조 할 수 없기 때문입니다.

당신이 data에서 첫 번째 점 사이의 거리와 임의의 동전 던지기에 의해 선택 data에서 첫 번째 점을하려면

는, 하나의 가능성은 find 기능을 사용하는 것입니다 (그것이 무엇을보고 그것을 볼) :

dist = norm(data(1,:) - data(firstIndex,:)); 

당신이 뭔가를 원한다면

가, 설명해주십시오 :
indexList = find(index); 
firstIndex = indexList(1); 
dist = sqrt((data(1,1)-data(firstIndex,1))^2 + (data(1,2)-data(firstIndex,2))^2); 

마지막 줄 도 같이 쓸 수있다. 당신이에 의해 가정

0

'데이터 (의 첫 번째 요소 ~ 인덱스 :)'당신이 이 ~ 지수에 해당하는 첫 번째 요소를 의미 다음도 작동 할

firstValue = data(find(~index,1,'first'),:) 
관련 문제