Matlab Error Message?

8 views (last 30 days)
Ahmed
Ahmed on 21 Jan 2016
Commented: Ahmed on 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?

Accepted Answer

Guillaume
Guillaume on 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.

More Answers (1)

Image Analyst
Image Analyst on 21 Jan 2016
Edited: Image Analyst on 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

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!