Using the max function to recieve two outputs

9 Ansichten (letzte 30 Tage)
Nathan Freitas
Nathan Freitas am 23 Sep. 2015
Bearbeitet: Stephen23 am 23 Sep. 2015
Hey, I have three vectors with 5 elements in each. Let them be x, y and t. I want to find the maximum value in x, when y >= 10. I've done this with:
x = [1 3 8 9 11]
y = [10 10.1 10.5 9 8]
t = [0.6 0.7 1 1.2 1.4]
d = max(x(find(y >= 10)))
This correctly returns the max value, I now what to find the value of t that corresponds to the max value in x. For example d = 8, and is the 3rd element in x, how do I automate the proccess of finding the 3rd element in t, which is 1.
Apperently I can use max to recieve two outputs, which can be both x and t]
Thanks!

Akzeptierte Antwort

Stephen23
Stephen23 am 23 Sep. 2015
Bearbeitet: Stephen23 am 23 Sep. 2015
You need to use the second output of max, which is an index. Here are two ways of doing this:
With find
idy = find(y>=10)
[d,idx] = max(x(idy))
t(idy(idx))
With temporary variable
idy = y>=10;
tmp = t(idy);
[d,idx] = max(x(idy))
tmp(idx)

Weitere Antworten (0)

Kategorien

Mehr zu Structures 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