MATLAB最大值

时间:2017-08-10 16:52:47

标签: matlab max

我对MATLAB中的max命令有疑问

我们说我有xy矩阵:

x = [1 2 3 4 5 6  7 8  9]
y = [1 4 6 2 3 64 7 67 6]

现在,我知道如何查找x最大值的y

xIndex = find(y==max(y));
maxXValue = x(xIndex);
像这样......

我的问题是:

  • 我是否必须plot(x, y)才能找到x最大的y值?
  • 有没有办法可以在没有绘图的情况下找到这个值?
  • 我想在没有绘图的情况下找到它(或者至少是绘图,但实际上没有显示)

2 个答案:

答案 0 :(得分:1)

max / min的第二个输出是数组中出现该值的索引。假设xy共享索引,您可以使用它来在两者之间进行映射。

例如:

x = [1 2 3 4 5 6 7 8 9];
y = [1 4 6 2 3 64 7 67 6];

[miny, minidx] = min(y);
[maxy, maxidx] = max(y);

fprintf('Ymin: %d, Xval: %u\nYmax: %d, Xval: %u\n', miny, x(minidx), maxy, x(maxidx))

返回:

Ymin: 1, Xval: 1
Ymax: 67, Xval: 8

答案 1 :(得分:0)

您可以使用逻辑索引直接获取与最大y对应的x值:

x(y==max(y))

如果y的最大值重复,那么您将获得x的每个匹配/对应值。