The error "arrays have incompatible sizes for this operation" in the function gradientdescentmulti (line 19) occurs when the sizes of the arrays involved in the operation are not compatible.
In the specific line of code you mentioned, h = x .* theta;
, it seems like you are trying to perform an element-wise multiplication between the arrays x
and theta
.
To avoid the error, make sure that the sizes of x
and theta
are compatible for element-wise multiplication. In MATLAB, for element-wise multiplication, the arrays should either have the same size or one of them should be a scalar.
Here are some possible solutions depending on your specific case:
If x
and theta
have the same size, you can directly perform the element-wise multiplication as h = x .* theta;
.
If theta
is a scalar, you can multiply it element-wise with each element of x
using the .*
operator as follows:
main.m16 chars2 lines
If x
is a scalar, you can multiply it element-wise with each element of theta
using the .*
operator as follows:
main.m16 chars2 lines
Make sure to check the sizes of x
and theta
and choose the appropriate solution based on your specific case.
For more information, you can refer to the MATLAB documentation on element-wise operations:
Remember to also check the other parts of your code to ensure there are no other instances of incompatible array sizes that could lead to this error.
gistlibby LogSnag