Error using * inner matrix dimensions must agree
1 view (last 30 days)
Show older comments
I have written a function in which one line is B = A*i; where A is a matrix and i is a scalar quantity.
i am calling this function many times around 4000 and the problem is for some time this statement is executing properly and after some time this error is showing at this line i do not know why. One more thing is that the function is executing different number of times when i am running it again and again.
Thank you.
0 Comments
Answers (2)
James Tursa
on 14 Apr 2015
Most likely i is not a scalar, hence the error. Try stopping on the error and then examining the dimensions to see what is going on.
dbstop if error
% then run your code
2 Comments
James Tursa
on 14 Apr 2015
Edited: James Tursa
on 14 Apr 2015
Look upstream in your code. Where do you define i? You must be defining it somewhere otherwise i would default to the inbuilt imaginary unit.
Star Strider
on 14 Apr 2015
Edited: Star Strider
on 14 Apr 2015
If ‘i’ is always a scalar, it should’t be throwing that error. Add this line before the ‘B’ assignment:
if sum(size(i)) ~= 2
fprintf(['\n\ti = ' repmat('%f ', 1, length(i)) '\n'], i)
end
B = A*i;
That will tell you if ‘i’ has somehow become a vector.
0 Comments
See Also
Categories
Find more on Logical 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!