【问题标题】:Matrix dimensions must agree min max normalization?矩阵尺寸必须同意最小最大归一化?
【发布时间】:2012-07-08 08:24:39
【问题描述】:

您好,我收到以下错误,我试图在 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。

【问题讨论】:

  • 什么是size(data),什么是size(minData)
  • 另外,您的错误消息 ("minVec") 与您的代码 ("minData") 不匹配。
  • 嗨,抱歉,Oli 在我发布后进行了更改。现已更正。 P.s 数据集是 1000x6。

标签: matlab normalization


【解决方案1】:

来自Matlab documentation on min

如果A 是一个矩阵,min(A)A 的列视为向量,返回一个包含每列最小元素的行向量。

如果要求矩阵的全局最小值,请使用以下任一形式:

min(min(A))
min(A(:))

【讨论】:

  • 谢谢奥利!不确定 max min 是否比我以前的方式更好data = data./repmat(sqrt(sum(data.^2)),size(data,1),1);
猜你喜欢
  • 2012-07-12
  • 2011-12-05
  • 2014-11-04
  • 1970-01-01
  • 1970-01-01
  • 2021-07-26
  • 1970-01-01
  • 1970-01-01
  • 2018-02-22
相关资源
最近更新 更多