2014-06-24 4 views
2

나는 두 세트의 숫자를 가지고 있으며 서로 비교하여 에서 MATLAB으로 비교하고 순위를 매기려고합니다.MATLAB에서 서로 상대적인 두 벡터의 순위 지정

데이터는 다음과 같습니다

x = [3 7 8 25 33 52 64 65 78 79 91 93]; 
y = [7 10 12 27 30 33 57 62 80 83 85 90]; 

내가 for/if/else 명령을 시작하고 중간에 붙어있어. 즉, 첫 번째 그룹 (x)의 숫자가 두 번째 그룹 (y)의 숫자보다 몇 배나 많습니까? 대답 MATLAB을 통해 답변을 얻고 싶습니다.

내가 정렬 및 for/if/else 이런 종류 이외의 명령을 사용하여 열려 나는 등

n1 = length(data1); 
n2 = length(data2); 

xs = sort(x); 
ys = sort(y); 

r1 = zeros(1,n1); 
r2 = zeros(1,n2); 

정렬을 시작있어, 정말 문제, 바로 올바른 방향으로 도움을 필요로하지 않습니다.

답변

0

나는 당신이 무엇을하려고하는지 잘 모르겠다. 두 벡터의 크기가 같다고 가정하는 것이 안전한가요?

2 개의 정렬 된 벡터를 요소별로 나누어서 통계를 얻을 수 있습니다. 예 : div = xs./ys; max_div = 최대 (DIV) mean_div = 평균 (DIV)

이 루프를 실행하고 대응하는 인덱스에 대한 YS 어레이 내의 각각의 요소에 의해 XS 어레이의 각 요소를 나누는 것과 같다. '최대'와 '평균'은 분명히 가장 큰 지수와 평균 지수입니다. MATLAB에서

0

, 벡터 X의 각각의 숫자는 벡터 Y의 숫자보다 더 얼마나 많은 시간을 찾을 :이 크기 크기 (X)를 생성하려면 y의 트랜스를 사용

sum(x > y.') 

(y) 행렬은 x의 숫자가 y의 숫자보다 클 때 1로, 그 다음에 각 열을 합합니다.

[0 0 1 3 5 6 8 8 8 8 12 12]

:

데이터 용

, 결과는 다음의 벡터 X의 각각의 개수에 대한 항목이며 벡터 x와 y는 정렬 할 필요가 없습니다. 총 횟수가 필요하면 합계를 다시 적용하면됩니다.