문제

벡터와 같은 벡터가 있다고 가정 해 봅시다

x = -1:0.05:1;
ids = randperm(length(x));
x = x(ids(1:20));

요소 사이의 최대 거리를 계산하고 싶습니다. x 관용적 인 방식으로. 가능한 모든 조합을 반복하는 것은 쉽습니다. x의 요소이지만 Matlab의 내장 기능으로 미쳤지 만 관용적 인 방식으로 수행 할 수있는 방법이있을 수 있다고 생각합니다.

도움이 되었습니까?

해결책

는 어때

max_dist = max(x) - min(x)

?

다른 팁

벡터에서 가장 크고 작은 요소의 차이를 의미합니까? 그렇다면 이와 같은 것이 효과가 있습니다.

max(x) - min(x)

그렇지 않으면 질문을 오해했습니다.

단순한 차원에서 일하고 있기 때문에 간단한 점수 계산이지만 점수 간 거리 계산입니다. 실제로 한 차원에서 최대 거리에서 떨어지는 그 지점은 항상 두 가지 가능한 지점 중 하나입니다. 따라서 필요한 것은 목록에서 최소값과 최대 값을 가져 와서 문제의 지점에서 멀리 떨어져 있는지 확인하기 만하면됩니다. 따라서 X의 숫자가 실수라고 가정하면 다음이 작동합니다.

xmin = min(x);
xmax = max(x);
maxdistance = max(x - xmin,xmax - x);

대안으로, 얼마 전 나는 일반적인 지점 거리 계산 도구를 파일 교환에 올려 놓았습니다. (IPDM). 가장 먼 지점 문제와 같은 특별한 경우 간단한 문제에 충분히 현명합니다. 이 전화는 당신을 위해 그것을 할 것입니다 :

D = ipdm(x,'subset','farthest','result','struct');

물론, 위에서 쓴 간단한 코드만큼 효율적이지는 않습니다. 그것이 완전히 일반적인 도구이기 때문입니다.

어 ... 내 손에 matlab을 갖고 싶어하고 아직 아침 일찍 이른 것입니다. 그러나 다음과 같은 것은 어떻습니까?

max_dist = max(x(2:end) - x(1:end-1));

이것이 당신이 찾고있는 것인지 모르겠습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top