Returning the final value of a while loop

I have a problem where I need to run a loop until x-y is less than a certain amount, with x getting smaller every time. When x-y is finally less than, say, h, how can I return the final value of x and put it into a variable? This is part of a larger function, and I don't want it to just display, I need to store the x value in a variable. For example:
function P = (x,y,h)
while (x-y) > h
x=x-1;
end
end
how can I make the answer to the function equal to the final x value?

 Risposta accettata

James Tursa
James Tursa il 10 Mar 2015
Modificato: James Tursa il 10 Mar 2015
Just set your return variable to x. E.g.,
function P = myFunction(x,y,h)
while (x-y) > h
x=x-1;
end
P = x;
end
Note: There are better ways to get the final x value that don't involve brute force subtracting 1 in a loop.

1 Commento

chazz
chazz il 10 Mar 2015
Modificato: chazz il 10 Mar 2015
Duh...well I guess trying to make it simpler didn't really help me, the code below is really what I'm trying to solve. I need to return the last integral of the while loop, the one that is small enough to satisfy the inequality. How can I do that?
function q = myimproperintegral(f,a,b,tol)
syms x;
k = 2;
H=0;
before = int(f(x),(a+(b-a)/k),b);
after = int(f(x),(a + (b-a)/(k+1)),b);
while before-after > tol
k=k+1;
H=int(f(x),(a+(b-a)/(k+1)),b);
end
q=double(H)
end

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Centro assistenza e File Exchange

Richiesto:

il 10 Mar 2015

Modificato:

il 10 Mar 2015

Community Treasure Hunt

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

Start Hunting!

Translated by