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

12 visualizzazioni (ultimi 30 giorni)
Replication factors must be a row vector of integers or integer scalars.
meanX = repmat(double(meanX), [nFilters/16, 1]);
Can anyone help me?

Risposta accettata

Walter Roberson
Walter Roberson il 3 Mar 2017
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 Commenti
Asghar Ali
Asghar Ali il 3 Mar 2017
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 il 3 Mar 2017
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.

Accedi per commentare.

Più risposte (1)

David J. Mack
David J. Mack il 3 Mar 2017
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

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by