Indexing a value from a vector

I have a for loop where I need to index the vector element when the value exceeds 120, and display the number of iterations it took to reach that value. Can anyone help me? My code:
n=100;
p(1)=14.7;
for i=2:n-1
p(i)=((patm*v1+p(i-1)*vtire)/(v2+vtire));
end
pg=p-patm
and of course all these variable are defined earlier in the script

Answers (2)

Wayne King
Wayne King on 3 Oct 2013
Edited: Wayne King on 3 Oct 2013
If you don't know the number of iterations in advance, why use a for loop?
Here, I'll test when any element of p goes negative and the looking at the length of the vector, you'll know it occured in the length-1.
n = 2;
p(1) = 14.7;
while all(p>0)
p(n) = p(n-1)-0.01;
n = n+1;
end
length(p)

3 Comments

The question asks to find how many pumps of the bike pump it takes to reach 120 psi. My loops goes simulates 101 pumps, I just need to index the pump number that makes it to 120 psi. It should be around the 24th pump
Then what Azzi suggests should work
It did'nt work, it just give me the values that are greater than 120. I just need the first value greater than 120, and the number of strokes
Azzi Abdelmalek
Azzi Abdelmalek on 3 Oct 2013
Edited: Azzi Abdelmalek on 3 Oct 2013
n=100;
p(1)=14.7;
for i=2:n-1
p(i)=((patm*v1+p(i-1)*vtire)/(v2+vtire));
end
pg=p-patm
idx=find(p>=120)

This question is closed.

Asked:

on 3 Oct 2013

Closed:

on 20 Aug 2021

Community Treasure Hunt

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

Start Hunting!