MATLAB Answers

Accessing a value in a vector from a conditional statement

11 views (last 30 days)
Frank Lehmann
Frank Lehmann on 5 Jul 2020 at 22:45
Commented: Frank Lehmann on 5 Jul 2020 at 23:49
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

  0 Comments

Sign in to comment.

Answers (2)

Star Strider
Star Strider on 5 Jul 2020 at 22:57
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’.
.

  0 Comments

Sign in to comment.


Image Analyst
Image Analyst on 5 Jul 2020 at 22:57
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 Comment

Frank Lehmann
Frank Lehmann on 5 Jul 2020 at 23:49
Thanks guys much appreciated it also helps having a few different solutions to keep in mind next time.

Sign in to comment.


Translated by