I need help with my MATLAB programming. I am trying to create a program where I input a set of values into a for loop and the for loop outputs 2 values for each input. So, in the end I should have two values for each input. But the values are coming out incorrect. The output is suppose to be using the first set of equations if eta2 is between 0 and 180, including both 0 and 180. It will use the second set of equations if eta2 is between 180 and 360, including 360. It will use the third set of equations if eta2 is between -360 and -180, including -360. It will use the fourth set of equations if eta2 is between -180 and 0, including both -180 and 0. eta2 = [181 0 -297] for i = 1:length(eta2) if 0 <= eta2(i) && eta2(i) <= 180 eta2(1,i) = eta2(i); eta2(2,i) = 180 - eta2(i); elseif 180 < eta2(i) && eta2(i) <= 360 eta2(1,i) = eta2(i); eta2(2,i) = 360 - (eta2(i) - 180); elseif -360 <= eta2(i) && eta2(i) < -180 eta2(1,i) = 360 + eta2(i); eta2(2,i) = 180 - (360 + eta2(i)); elseif -180 <= eta2(i) && eta2(i) <= 0 eta2(1,i) = 360 + eta2(i); eta2(2,i) = 360 + (180 - eta2(i)); end end eta2; % The output turns out to be: % eta2 = [181 359 359; % 359 181 181]; % The correct output should be: % eta2 = [181 0 63; % 359 180 117];
I need help with my MATLAB
eta2 = [181 0 -297]
for i = 1:length(eta2)
if 0 <= eta2(i) && eta2(i) <= 180
eta2(1,i) = eta2(i);
eta2(2,i) = 180 - eta2(i);
elseif 180 < eta2(i) && eta2(i) <= 360
eta2(1,i) = eta2(i);
eta2(2,i) = 360 - (eta2(i) - 180);
elseif -360 <= eta2(i) && eta2(i) < -180
eta2(1,i) = 360 + eta2(i);
eta2(2,i) = 180 - (360 + eta2(i));
elseif -180 <= eta2(i) && eta2(i) <= 0
eta2(1,i) = 360 + eta2(i);
eta2(2,i) = 360 + (180 - eta2(i));
end
end
eta2;
% The output turns out to be:
% eta2 = [181 359 359;
% 359 181 181];
% The correct output should be:
% eta2 = [181 0 63;
% 359 180 117];
Trending now
This is a popular solution!
Step by step
Solved in 4 steps with 3 images