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

回答(2 个)

Wayne King
Wayne King 2013-10-3
编辑:Wayne King 2013-10-3
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 个评论

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
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)

此问题已关闭。

提问:

2013-10-3

关闭:

2021-8-20

Community Treasure Hunt

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

Start Hunting!

Translated by