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?

 Respuesta aceptada

Guillaume
Guillaume el 21 de En. de 2016

1 voto

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.

Más respuestas (1)

Image Analyst
Image Analyst el 21 de En. de 2016
Editada: Image Analyst el 21 de En. de 2016

0 votos

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

Categorías

Más información sobre Mathematics en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 21 de En. de 2016

Comentada:

el 21 de En. de 2016

Community Treasure Hunt

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

Start Hunting!

Translated by