Filter löschen
Filter löschen

Accessing a value in a vector from a conditional statement

2 Ansichten (letzte 30 Tage)
Frank Lehmann
Frank Lehmann am 5 Jul. 2020
Kommentiert: Frank Lehmann am 5 Jul. 2020
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

Antworten (2)

Star Strider
Star Strider am 5 Jul. 2020
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 am 5 Jul. 2020
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 Kommentar
Frank Lehmann
Frank Lehmann am 5 Jul. 2020
Thanks guys much appreciated it also helps having a few different solutions to keep in mind next time.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Operators and Elementary Operations finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by