Im trying to add a new value to y, as the loop progresses, to create an array, in this instance y=[1,3,5,7]. Meanwhile, all I get is the final number of that array, y=7 as a result. I know that this happens because the values are not added one by one but are all added spontaneously, so the seven fits the criteria for the "if" , but I dont have a clue on how to fix this.
Any help or tip would be appreciated, I have been stuck with this for hours and I cant find any solution online...
clear
y=0;
for k=1:2:10;
x=[1:10];
if sum(y.^2)>30
break
end
y=x(k);
end
disp(y)

 채택된 답변

Matt J
Matt J 2023년 12월 2일
편집: Matt J 2023년 12월 2일
One possibility,
y=nan(1,100);
s=0;
for k=1:numel(y)
y(k)=2*k-1;
s=s+y(k).^2;
if s>40,
y=y(1:k);
break;
end
end
y
y = 1×4
1 3 5 7

댓글 수: 1

Odysseas
Odysseas 2023년 12월 3일
Thanks, this will do! I will try to compare it to my attempts to find other possible solutions.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

질문:

2023년 12월 2일

댓글:

2023년 12월 3일

Community Treasure Hunt

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

Start Hunting!

Translated by