Matlab Error Message?

I have the below matlab code, and I got this error "Subscripted assignment dimension mismatch"
for s=1:6
x(:,s) = Cr(1,s) .* x2(:,s);
end
Cr is 1x6, x2 is 100x6?
Does anyone know where is the problem?

 Risposta accettata

Guillaume
Guillaume il 21 Gen 2016
Your x must have strictly more or less than 100 rows. Hence the assignment fails.
Note that a much simpler way of achieving what you want is with bsxfun:
x = bsxfun(@times, Cr, x2) %that's all that's needed. No loop.

Più risposte (1)

Image Analyst
Image Analyst il 21 Gen 2016
Modificato: Image Analyst il 21 Gen 2016
Maybe you're after this: (????)
Cr = rand(1,6);
x2 = rand(100,6);
x = zeros(100, 6); % Preallocate
for row = 1 : size(x2, 1)
x(row, :) = Cr(1:end) .* x2(row,:);
end
x

Categorie

Scopri di più su Mathematics in Centro assistenza e File Exchange

Richiesto:

il 21 Gen 2016

Commentato:

il 21 Gen 2016

Community Treasure Hunt

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

Start Hunting!

Translated by