How to write and run while loop in app design?

C= app.CollectionEditField.Value;
S= app.ServingEditField.Value;
app.cycle=0;
cycle_t=app.cycle;
app.FC=0;
F_C=app.FC;
app.F=0;
F_1 =app.F;
SC= S;
while F_C<=double(SC-0.000001))
F_1= double(S*C);
S= double(S-F_1);
F_C= double(F_C+F_1);
Fo= F_C;
cycle_o= (cycle_t+1);
end
app.CycleEditField.Value= cycle_o;
app.FInalCollectionEditField.Value= Fo;

댓글 수: 8

The posting could stand some context and explanation of just what is the problem, but...
C= app.CollectionEditField.Value;
S= app.ServingEditField.Value;
are both text values; I think you need a str2double() here and undoubtedly an error handler to catch any failure in the conversion.
That's the crystal ball talking lacking any other information to go on...
These are numeric edit field box. So, the number what I am providing its passing. SO in that case there are no issue.
dpb
dpb 2021년 6월 11일
So then is there a question here?
When I am applying S and C value it is going inside of the while loop and showing the cycle number and Fo. But this result is for one cycle. Not for the while loop condition.
Cris LaPierre
Cris LaPierre 2021년 6월 11일
편집: Cris LaPierre 2021년 6월 11일
It sounds like your while loop is running, but just not the way you expected. However, without some actual values, we can only guess what is happening. Could you supply what the initial and final values of S, C, cycle_o and Fo should be?
Example: if S=15 and C=0.02 than cycle_o will 704 and Fo will 15.
F_C=0;
cycle_t=0;
S=15;
C=0.02;
SC=S;
while F_C <=SC-0.000001
F_1= S*C;
S= S-F_1;
F_C= F_C+F_1;
Fo= F_C;
cycle_o=cycle_t+1;
end
>> cycle_o
cycle_o =
1
>> F_C
F_C =
15.0000
>> SC
SC =
15
>>
I have no klew what you're trying to do here, but your first line in the while construct sets F_1 to the S*C product and then the control variable F_C is set to F_C+F_1 which is F_1 since F_C is initialized to zero. Thus, the inequality
F_C <= SC-eps
fails and the loop terminates.
Try this in command window. You will see cycle number is showing 860.
FC=0;
C=0.02;
cycle=0;
>> S=35;
>> SC=S;
F=0;
while FC <=SC-0.000001
F= S*C;
S= S-F;
FC= FC+F;
cycle=cycle+1;
end

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

답변 (1개)

Shadaab Siddiqie
Shadaab Siddiqie 2021년 6월 15일

0 개 추천

From my understanding you are not able to run while loop in your code. I dont see anything wrong with the loop or with the code that you mentioned in the comment, I would advice you to check if the varaibles
C= app.CollectionEditField.Value;
S= app.ServingEditField.Value;
are as expected.

댓글 수: 1

As I am trying to design the app so, my intension is to apply C and S value using app numerical box. When I will give this value in the box then they will do the calculation using the while loop. And after finishing the the calculation it will show the result in another box. Can you kindly say me, what exactly I have to do for design such app? I am getting the result from the command window but when I am using in app its not working?

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

카테고리

도움말 센터File Exchange에서 Develop Apps Using App Designer에 대해 자세히 알아보기

질문:

2021년 6월 11일

댓글:

2021년 6월 17일

Community Treasure Hunt

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

Start Hunting!

Translated by