2014-04-13 8 views
0

아래 코드를 사용하여 행렬을 정규화합니다. 내 데이터의 진폭의 원인은 다른 열보다 각 열에 매우 다르므로있다 내 원래 데이터의 일부 어떻게 매트릭스를 정규화 할 수 있습니까?

A = rand(m,n) 
normA = max(A) - min(A);    
normA = repmat(normA, [length(a) 1]); 

normalizedA = A./normA; 

0과 1 내 대답없는 :

32512035.2100000 5401399.57000000 346.880000000000 
32512044.0300000 5401399.54000000 346.850000000000 
32512046.8900000 5401399.55000000 346.780000000000 
32512049.7800000 5401399.53000000 346.860000000000 
32512052.6900000 5401399.53000000 346.700000000000 
32512054.0300000 5401399.53000000 346.780000000000 
32512055.6900000 5401399.57000000 346.810000000000 
32512063.1200000 5401399.54000000 347.800000000000 
32512074.2300000 5401399.55000000 346.440000000000 
32512093.1200000 5401399.54000000 346.660000000000 

및 그 (것)들의 정상화는 :

341584.736395270 39652.0303186782 6.02013189864630 
341584.829061797 39652.0300984462 6.01961124609511 
341584.859110126 39652.0301718569 6.01839639014231 
341584.889473648 39652.0300250355 6.01978479694551 
341584.920047298 39652.0300250355 6.01700798333912 
341584.934125886 39652.0300250355 6.01839639014231 
341584.951566525 39652.0303186782 6.01891704269351 
341585.029629143 39652.0300984462 6.03609857688303 
341585.146355346 39652.0301718569 6.01249566122874 
341585.344821410 39652.0300984462 6.01631377993752 

어떤 열을 따로 따로 정규화해야합니까?

+0

; 예를 들어, 모든 값이 5와 6 사이라면, 모든 것을 1로 나눌 수 있습니다. –

+0

그러나이 작업을 수행 할 필요는 없습니다. 'rand'는 이미 0에서 1 사이의 값을 제공합니다 ... –

답변

1

당신은 사용해야합니다 :이 작동하지 않습니다 물론

max_value = max(A(:)); 
min_value = min(A(:)); 
normalizedA = (A - min_value)/(max_value - min_value); 
+0

+1 스마트 접근 BTW – Divakar

관련 문제