MATLAB: I am getting a strange error on the array operation. Please help.

error using '^' operation in a loop

s = size(n3);
for l1 = 1:s(1)
m(l1,1) = (n3(l1,1))^(2.6666667);
end
This is a simple loop. In this, I am trying to calculate the n3^2.6666667. But, I am getting a complex number output. Variable n3 varies between -0.7 to 0.7. So, there is no chance of getting a complex value. I checked with the individual values like -0.7^2.6666667 so on. What is the error? I couldn't understand. Kindly help in this.

Best Answer

-0.7^2.6666667 this check is not correct.....you should check for (-0.7)^2.6666667. Note that roots of negative numbers can be complex. I don't think this is any strange.