MATLAB 找到最接近的数组值

MATLAB 找到最接近的数组值

MATLAB 是为科学家和工程师开发的编程环境,用于设计和分析系统、进行数据分析、创建可视化等。MATLAB代表Matrix Laboratory,它是由MathWorks开发的一种编程和交互平台,提供各种编程数学函数和操作、数据分析等工具。MATLAB在科学、工程、金融、经济等不同领域得到广泛应用。

阅读本教程以了解在MATLAB中找到数组中最接近的值的不同方法。在此之前,让我们对MATLAB中的数组有一个了解。

什么是MATLAB中的数组

在MATLAB中,将相同数据类型的元素组织到一个或多个维度中的集合称为 数组 。数组类似于矩阵,其中的元素按行和列排列。

  • 在MATLAB中,数组可以是任意维度的,从 一维数组到多维数组 。在MATLAB中,数组是一种用于存储和操作数据的基本数据结构。

  • 根据特定的应用,MATLAB数组可以用于存储数值数据、逻辑数据、字符或任何其他数据类型。

  • 在MATLAB中,可以使用 “方括号'[]’” 创建一个数组,其中数组的元素之间用逗号符号分隔。

Array在MATLAB中的示例

下面的代码是一个 一维数组 的例子,其中包含七个元素-

A = [1, 2, 3, 4, 5, 6, 7]

输出

它将产生以下 输出

A =
1   2   3   4   5   6   7

下面的代码是多维数组的一个例子。

A = [1, 2, 3, 4; 5, 6, 7, 8; 9, 10, 11, 12]

输出

它将产生以下 输出

A =
1   2   3   4
5   6   7   8
9   10  11  12

在MATLAB中,数组是一种基本且广泛使用的数据结构类型,被应用于各种应用中。

现在,让我们讨论在MATLAB中找到数组中最接近的值的不同方法。

在MATLAB中找到最接近的数组值

在本教程的这部分中,我们将讨论在MATLAB中找到给定目标值最接近的值的不同方法。

方法1 – 最近邻插值方法-

在MATLAB中,我们可以使用最近邻插值方法来找到给定数组中最接近的值。为此,使用函数“interp1()”。然后,我们可以使用’nearest’进行插值,即最近邻插值。

语法 – 以下代码展示了MATLAB中使用最近邻插值方法的“interp1()”函数的语法,

Interp1(array, array, target, 'nearest')

示例1

% Create an array
A = [1, 2, 3, 5, 7, 9]
% Select a target value
target = 1.4
% Use interp1() function and nearest neighbor interpolation to find the closest value
Closest_Value = interp1(A, A, target, 'nearest')

输出

它将产生如下 输出

A =
1   2   3   5   7   9
target = 1.4000
Closest_Value = 1

解释

在这个程序中,首先我们创建了一个名为”A”的数组,其中包含值”[1, 2, 3, 5, 7, 9]”。然后我们选择一个目标值”1.4″,我们想要在给定的数组中找到最接近的值。然后我们使用”interp1()”函数来使用最近邻插值方法找到最接近的值。

“interp1()”函数中,第一个参数指定要进行插值的数组,这里是”A”,第二个参数指定对应的输出值,这里也是”A”,第三个参数是目标值”1.4″,第四个参数指定插值的方法,这里是”nearest”。

因此,这个MATLAB程序的输出结果是在给定的数组”A”中最接近目标值”1.4″的值”1″。

重要提示 :上述程序适用于目标值在数组的最大值和最小值之间的情况,如果目标值小于或大于数组的最大值和最小值,上述代码将返回NaN作为输出。请参考下面给出的示例程序。

示例2

% Create an array
A = [1, 2, 3, 5, 7, 9]
% Select a target value
target = 12
% Use interp1() function and nearest neighbor interpolation to find the closest value
Closest_Value = interp1(A, A, target, 'nearest')

输出

它将产生以下 输出

A =
1   2   3   5   7   9
target = 12
Closest_Value = NaN

示例3

% Create an array
A = [1, 2, 3, 5, 7, 9]
% Select a target value
target = -30
% Use interp1() function and nearest neighbor interpolation to find the closest value
Closest_Value = interp1(A, A, target, 'nearest')

输出

将产生以下 输出

A =
1   2   3   5   7   9
target = -30
Closest_Value = NaN

为解决这个问题,我们使用以下方法。

方法2 – 最近邻居外推法-

在MATLAB中,当在数组中找到最接近的值时,有时我们会有一个目标值,该值要么大于数组的最大值,要么小于数组的最小值。在这种情况下,interp1函数的输出将是NaN值,如上面的两个程序所示。

为解决这个问题,我们使用”最近邻居外推法”,其中interp1()函数与”extrap”选项一起使用。该”extrap”选项允许我们通过在数组范围之外外推值来查找最接近的值,当目标值在数组范围之外时。

语法 −以下代码显示了MATLAB中使用最近邻居外推法的”interp1()”函数的语法。

Interp1(array, array, target, 'nearest', 'extrap')

现在,让我们通过示例程序来理解这个概念。

示例4

% Create an array
A = [1, 2, 3, 5, 7, 9]
% Select a target value
target = -30
% Use interp1() function and nearest neighbor extrapolation to find the closest value
Closest_Value = interp1(A, A, target, 'nearest', 'extrap')

输出

将产生以下 输出

A =
1   2   3   5   7   9
target = -30
Closest_Value = 1

示例5

% Create an array
A = [1, 2, 3, 5, 7, 9]
% Select a target value
target = 12
% Use interp1() function and nearest neighbor extrapolation to find the closest value
Closest_Value = interp1(A, A, target, 'nearest', 'extrap')

输出

它将会产生以下 输出

A =
1   2   3   5   7   9
target = 12
Closest_Value = 9

在这两个程序中,”extrap”选项告诉MATLAB在目标值超出给定数组”A”的范围时进行外推以找到最接近的值。

结论

在本教程中,我们详细解释了在MATLAB中找到数组中最接近的值的不同方法,并借助一些示例程序进行说明。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程