Arrays 在Matlab中求一维表中一个数的次高和次低的whithout循环

Arrays 在Matlab中求一维表中一个数的次高和次低的whithout循环,arrays,matlab,max,min,Arrays,Matlab,Max,Min,我在问matlab中是否有一个函数可以找到与数组中的一个数字相比较的第一个最大值和第一个最小值 例如: 如果我们有一个数组A=[123456789] 数值为x=3.4 我们如何找到一个函数(而不是一个循环)并将x的first min和firts max存储在变量min_x max_x中 理想结果: 最小x=3 max_x=4首先,您可能需要将十进制数转换为数组。以下是一些建议的方法,您可以做到这一点。在您拥有一个数字数组之后,您应该能够使用MATLAB内置的max()和min()函数 使用逻辑索

我在问matlab中是否有一个函数可以找到与数组中的一个数字相比较的第一个最大值和第一个最小值

例如:

如果我们有一个数组A=[123456789]

数值为x=3.4

我们如何找到一个函数(而不是一个循环)并将x的first min和firts max存储在变量min_x max_x中

理想结果:

最小x=3


max_x=4

首先,您可能需要将十进制数转换为数组。以下是一些建议的方法,您可以做到这一点。在您拥有一个数字数组之后,您应该能够使用MATLAB内置的max()和min()函数

使用逻辑索引选择小于(大于)x的
A
条目,然后使用
max
min
):

max(A(A-x0))

我把“次高/次低”解释为从上到下与
A
中的
x
最接近的数字。

我不确定我是否理解正确,你想在十进制数字中找到最大和最小的数字吗?非常感谢这是我想要的答案:)请继续回答。。非常感谢这是我一直在寻找的答案:)就这样吧。。min_x=A(max(find(Amax(A(A-x<0)) min(A(A-x>0))