Accessing a value in a vector from a conditional statement

Hi All,
Im trying to access a vlue in the middle of my vector as per below. From my mv value of 13.073 i should receive the value of 25 from the vector, ie next highest from mv. I would like to get both the value and index
v=[6 10 25 35 50 65 80]
x=10.02
y=10.47
mv=max(x*.125,y*1.25)
for k=1:length(v)
if v(k)>mv
mv=v(k)
ind=k
end
end
Thanks,
Everyone

回答 (2 件)

Star Strider
Star Strider 2020 年 7 月 5 日

0 投票

There are several ways to do this.
My approach:
v=[6 10 25 35 50 65 80];
x=10.02;
y=10.47;
mv=max(x*.125,y*1.25);
ind = interp1(v,(1:numel(v)), mv, 'next')
Out = v(ind)
producing:
ind =
3
Out =
25
I prefer not to overwrite existing variables, so I have the output as ‘Out’.
.
Image Analyst
Image Analyst 2020 年 7 月 5 日

0 投票

Use find():
v=[6 10 25 35 50 65 80]
x=10.02
y=10.47
mv=max(x*.125,y*1.25)
[~, index] = find(v >= mv, 1, 'first')
value = v(index)
index =
3
value =
25

1 件のコメント

Frank Lehmann
Frank Lehmann 2020 年 7 月 5 日
Thanks guys much appreciated it also helps having a few different solutions to keep in mind next time.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeGet Started with MATLAB についてさらに検索

質問済み:

2020 年 7 月 5 日

コメント済み:

2020 年 7 月 5 日

Community Treasure Hunt

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

Start Hunting!

Translated by