Info

Diese Frage ist geschlossen. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.

FOR LOOP NOT WORKING

1 Ansicht (letzte 30 Tage)
Olivia Vargo
Olivia Vargo am 30 Jul. 2020
Geschlossen: MATLAB Answer Bot am 20 Aug. 2021
The For loop i am trying to run is only running the 219th, or the last variable in the loop instead of running the whole loop. I cannot figure out why.
EXANGLES = -34:1:184;
EYANGLES = deg2rad(EXANGLES);
EVSUB1 = 90;
for i = 1:length(EXANGLES)
if EXANGLES(i) < 90
EVANGLE1 = EVSUB1-FT126;
elseif EXANGLES(i) == 90
EVANGLE2 = 90;
elseif EXANGLES(i) > 90
EVANGLE3 = EVSUB1+FT126;
end
end
EVSUB = [EVANGLE1, EVANGLE2,EVANGLE3];

Antworten (2)

Shae Morgan
Shae Morgan am 31 Jul. 2020
EXANGLES = -34:1:184;
EYANGLES = deg2rad(EXANGLES);
EVSUB1 = 90;
FT126 = 126;
for i = 1:length(EXANGLES)
if EXANGLES(i) < 90
EVSUB(i) = EVSUB1-FT126;
elseif EXANGLES(i) == 90
EVSUB(i) = 90;
elseif EXANGLES(i) > 90
EVSUB(i) = EVSUB1+FT126;
end
end
EVSUB
  1 Kommentar
Shae Morgan
Shae Morgan am 14 Aug. 2020
If this answers your question, please accept - thanks!

James Tursa
James Tursa am 30 Jul. 2020
Index your answers. E.g.,
if EXANGLES(i) < 90
EVANGLE1(i) = EVSUB1-FT126;
elseif EXANGLES(i) == 90
EVANGLE2(i) = 90;
elseif EXANGLES(i) > 90
EVANGLE3(i) = EVSUB1+FT126;
end
and
EVSUB = [EVANGLE1(:), EVANGLE2(:), EVANGLE3(:)];
  3 Kommentare
Shae Morgan
Shae Morgan am 31 Jul. 2020
Here's a hypothetical scenario to explain why this answer is liited
i=1
If EXANGLES(1) < 90, then EVANGLE1(i) will be populated with EVSUB-FT126
i=2
if EXANGLES ~<90, EVANGLE1(i) will be assigned a zero.
i=3
if EXANGLES <90, then EVANGLE1(i) will again be assigned a value
since the later portion of your EXANGLES variable are all greater than 90 - this will cause many non-assigned values to EVANGLES1 and EVANGLES2, which will not allow them to be concatenated.
James Tursa
James Tursa am 31 Jul. 2020
True. I overlooked that. The unassigned values will be 0's and the lengths can be fixed up, but that begs the question what do you want for an output? Do you want three columns with lots of zeros in them (in which case we can fix up the lengths), or did you want something else?

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by