Replication factors must be a row vector of integers or integer scalars.

14 次查看(过去 30 天)
Replication factors must be a row vector of integers or integer scalars.
meanX = repmat(double(meanX), [nFilters/16, 1]);
Can anyone help me?

采纳的回答

Walter Roberson
Walter Roberson 2017-3-3
If nFilters was not an integer divisible by 16, then nFilters/16 would not be a positive integer. The number of repetitions you specify must be positive integers. For example,
meanX = repmat(double(meanX), [ceil(nFilters/16), 1]);
would be more likely to be a positive integer (but would still fail if nFilters was 0 or negative.)
  3 个评论
Asghar Ali
Asghar Ali 2017-3-3
Thanks Walter, it works fine, but I get following error now: Non-singleton dimensions of the two input arrays must match each other.
rawValues = bsxfun(@minus, (filtX-bsxfun(@times, meanX, filtMean)) ./ stdX, whitening);
Walter Roberson
Walter Roberson 2017-3-3
I suspect that your code relies upon the number of filters being a multiple of 16, such as would be the case if you had 176 filters instead of 175.

请先登录,再进行评论。

更多回答(1 个)

David J. Mack
David J. Mack 2017-3-3
nFilters/16 is probably not an integer. Depending on your needs, try round(nFilters/16) instead or use a number of filters which is an integer multiple of 16.
Greetings, David

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Translated by