2012-07-08 111 views
0

您好我得到如下所述的錯誤,我嘗試在0和1之間的規範化我得到的錯誤是這樣的:矩陣尺寸必須符合最小標準化?

columns = 

    6 

    ??? Error using ==> minus 
    Matrix dimensions must agree. 

    Error in ==> Kmeans at 54 
     data = ((data-minData)./(maxData)); 

不知道是什麼,我做的不對嗎?全碼如下:

%% dimensionality reduction 
    columns = 6 
    [U,S,V]=svds(fulldata,columns); 

%% randomly select dataset 
rows = 1000; 
columns = 6; 

%# pick random rows 
indX = randperm(size(fulldata,1)); 
indX = indX(1:rows); 

%# pick random columns 
indY = randperm(size(fulldata,2)); 
indY = indY(1:columns); 

%# filter data 
data = U(indX,indY); 

%% apply normalization method to every cell 
maxData = max(data); 
minData = min(data); 
data = ((data-minData)./(maxData)); 

該數據集是1000x6。

+0

什麼是'大小(數據)',什麼是'大小(minData)'? – 2012-07-08 20:48:30

+0

此外,您的錯誤消息(「'minVec'」)與您的代碼(「'minData'」)不匹配。 – 2012-07-08 20:49:32

+0

嗨對不起,Oli在我發佈之後做了改動。現在更正。 P.s數據集是1000x6。 – 2012-07-08 20:50:23

回答

3

Matlab documentation on min

如果A是一個矩陣,Amin(A)將列矢量,返回一個包含從每一列中的最小元素的行向量。

如果你想找到一個矩陣的全球最小,使用下列形式:

min(min(A)) 
min(A(:)) 
+0

謝謝奧利!不知道max min是否比我以前的方式更好'data = data./repmat(sqrt(sum(data.^2)),size(data,1),1);' – 2012-07-08 21:06:52