필터 지우기
필터 지우기

ending FOR loop and starting over

조회 수: 3 (최근 30일)
Jernej Primozic
Jernej Primozic 2022년 7월 12일
댓글: Walter Roberson 2022년 7월 13일
Hi.
I am building a program where I am summing two values. one is just a number and another is an array
KAP = 5;
n = 1
BAT;
A = [5 10 -5 -7 12 -7 18];
for jj = 1:length(A)
BAT = KAP*n + A(jj)
if BAT < 0
n = n+1
end
end
So i dont know what to do so the value n would increase and also the program should start again at the beggining. So the BAT value is at the end never under 0. Can you help me please i tried with continue and also break and return but still i dont get the right resoult
  댓글 수: 1
Walter Roberson
Walter Roberson 2022년 7월 12일
Do I understand correctly that the desired output is:
  • n = 1 if all A values are non-negative
  • otherwise n = smallest integer such that n*5+A(jj) is non-negative for all jj?
If so then I would suggest to you that in finding n you only need to pay attention to min(A)

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

채택된 답변

Anay Aggarwal
Anay Aggarwal 2022년 7월 12일
Hi Jernej,
I have an understanding that you want to run the loop for calculating the value of BAT and whenever it is negative then n->n+1 and the loop should start from beginning so that BAT is never under zero at the end of the loop.
As per my understanding, when you are checking for the condition of BAT to be negative, in it you can increase n and redeclare jj=1
KAP = 5;
n = 1
BAT;
A = [5 10 -5 -7 12 -7 18];
for jj = 1:length(A)
BAT = KAP*n + A(jj)
if BAT < 0
n = n+1
jj=1;
end
end
Hope this helps.
Regards
  댓글 수: 2
Bharat Chandra Mukkavalli
Bharat Chandra Mukkavalli 2022년 7월 12일
Hi Anay,
When you try to update the 'jj' inside the for loop, MATLAB will throw a warning and the value will not be updated.
Please check it once.
Walter Roberson
Walter Roberson 2022년 7월 13일
It is valid to change the for loop variable. However the change will be ignored if any more iterations would normally have occurred.

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

추가 답변 (1개)

Bharat Chandra Mukkavalli
Bharat Chandra Mukkavalli 2022년 7월 12일
Hi,
I have gone through your code, would you please explain the purpose of the if condition in the for loop?
In the code, the cumulative sum is not being stored and only the value of the n is being updated when the BAT value is less than zero. The final value stored in BAT is KAP*n + A(end).
  댓글 수: 1
Jernej Primozic
Jernej Primozic 2022년 7월 12일
So the hole story is that i have an arrays. i have to go through it and sum it with one preset value. The resoult aways have to be positive. If not i have to increase the number of the preseat value so if n = 1 follows that the KAP = 5
if n is 2 then KAP is 10 and so on
so if i discover that the resoult will not be positive then i have to increase the number (n) and go back and redo it. I hope this explanation is better

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

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

제품


릴리스

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by