Matlab Error Message?

8 vues (au cours des 30 derniers jours)
Ahmed
Ahmed le 21 Jan 2016
Commenté : Ahmed le 21 Jan 2016
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?

Réponse acceptée

Guillaume
Guillaume le 21 Jan 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.
  1 commentaire
Ahmed
Ahmed le 21 Jan 2016
That is fine Thank you

Connectez-vous pour commenter.

Plus de réponses (1)

Image Analyst
Image Analyst le 21 Jan 2016
Modifié(e) : Image Analyst le 21 Jan 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
  1 commentaire
Ahmed
Ahmed le 21 Jan 2016
Thank you

Connectez-vous pour commenter.

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by