MATLAB中的diff函数(详细指南)

您所在的位置:网站首页 matlab中diff函数怎么用 MATLAB中的diff函数(详细指南)

MATLAB中的diff函数(详细指南)

#MATLAB中的diff函数(详细指南)| 来源: 网络整理| 查看: 265

本文将解释你需要知道的关于MATLAB diff()函数的一切。

我们将看到如何实现这个函数来寻找矢量元素、行和矩阵的列之间的差异。在这篇文章中,你还将学习如何获得一个数学函数的近似导数。

这将通过实际的例子来说明,其中的代码片段和图片说明了在多个维度和不同类型的向量和数组中使用该函数的不同方法。

MATLAB diff函数语法 d =[diff](http://www.mathworks.com/access/helpdesk/help/techdoc/ref/diff.html) (x) d =[diff](http://www.mathworks.com/access/helpdesk/help/techdoc/ref/diff.html) (x, n) d =[diff](http://www.mathworks.com/access/helpdesk/help/techdoc/ref/diff.html) (x, n, dim) 复制代码 MATLAB diff函数说明

diff()函数在 "d "中返回输入矢量或矩阵 "x "的一个元素和文本之间的差异。当我们用一个数组作为输入调用diff时,我们沿着一个维度操作。因此,"d "中的结果将是一个大小为n的数组,其维度为我们操作的维度上的n-1元素。我们要操作的维度是通过输入 "dim "来选择的。输入 "n "是一个整数标量,用于设置导数的顺序。这个函数在 "x "中接受矢量、二维和多维数组,而输入 "n "和 "dim "是正整数标量类型。下面我们将看到这个函数在向量和不同矩阵类型上的一些实际例子。

例1:如何用MATLAB函数diff()获取矢量相邻元素之间的差值

现在,让我们看看如何使用MATLAB函数diff来查找矢量 "v "的相邻元素之间的差异。要做到这一点,我们将创建一个脚本并编写以下代码。

v =\[ 1,2,4,7,11,7,4,2,1 \]; r =[diff](http://www.mathworks.com/access/helpdesk/help/techdoc/ref/diff.html) (v) 复制代码

在脚本的第一行,我们创建了9元素的向量 "v"。然后,在第二行代码中,我们调用diff()函数,将 "v "作为输入参数。由于我们在这种情况下发送的是一个矢量,所以没有使用输入 "dim"。

正如你在下图中看到的,MATLAB环境的命令控制台显示,"d "中的输出是 "v "中连接元素之间的差异向量。你可以看到,输出向量比输入向量少一个元素。

例2:如何使用 "dim "输入,用MATLAB的diff()函数沿不同维度进行操作

在我们使用该函数在不同维度上操作 "dim "输入的情况下,"n "输入不应该是空的,因为diff()在其第二个输入参数中使用 "n"。如果不使用这个输入,应该发送一个1,这是默认值。

例3:如何使用 "dim "输入,用MATLAB diff函数沿第一维操作

现在,让我们看看如何使用MATLAB函数diff来寻找矩阵 "m "的相邻元素之间沿其列或维度1的差异。为此,我们将创建一个脚本并编写以下代码。

m =[magic](http://www.mathworks.com/access/helpdesk/help/techdoc/ref/magic.html) ( 5 ) r =[diff](http://www.mathworks.com/access/helpdesk/help/techdoc/ref/diff.html) (m,1,1 ) 复制代码

在脚本的第一行,我们使用magic()函数来创建一个由5乘5元素的数组组成的魔方。在第二行代码中,我们调用diff()函数,发送 "m "作为输入参数,并在 "dim "输入中指定它沿维度1操作。

下面的图片显示了命令控制台中的结果 "d"。在这种情况下,它是一个五列四行的数组,连续的元素之间的差异沿维度1为 "m"。

例4:如何使用 "dim "输入,用MATLAB diff函数进行二维运算

在这个例子中,我们将看到如何对矩阵的第二维进行操作,也就是沿其行进行操作。要做到这一点,我们使用与前一个例子相同的代码片段,但这一次,我们通过输入 "dim "来表示,以便沿着维度2或魔方的行进行操作。

M =[magic](http://www.mathworks.com/access/helpdesk/help/techdoc/ref/magic.html) ( 5 ) r =[diff](http://www.mathworks.com/access/helpdesk/help/techdoc/ref/diff.html) (m,1,2 ) 复制代码

下面的图片显示了命令控制台中的 "d "结果。在这种情况下,它是一个四行五列的数组,沿维数 "m "的连续元素之间的差异。

例5:如何用MATLAB diff()获取一个函数的近似导数

在这个例子中,我们将看到如何使用diff()函数得到正弦波的近似导数,我们将使用该函数得到y在区间x,x+h中的差值,然后将其除以区间h。

x =0:0.01:2\*pi;% h 或 Delta x = 0.01 y =[sin](http://www.mathworks.com/access/helpdesk/help/techdoc/ref/sin.html) (x); d =[diff](http://www.mathworks.com/access/helpdesk/help/techdoc/ref/diff.html) (y)/0.01; [plot](http://www.mathworks.com/access/helpdesk/help/techdoc/ref/plot.html) (x(: ,1:[length](http://www.mathworks.com/access/helpdesk/help/techdoc/ref/length.html) (d) ), d , x(: ,1:[length](http://www.mathworks.com/access/helpdesk/help/techdoc/ref/length.html) (y) ), y) 复制代码

在前面的代码片段中,我们首先创建了从0到2*pi的时间向量 "x",间隔为0.01的 "h"。然后,我们用 "x "的正弦值创建向量 "y",这样它们就有相同的大小。一旦创建了波,通过diff()函数,我们将在输出 "d "中获得矢量 "y "的元素之间的差异。接下来,我们把 "d "中的差值除以 "h",我们将得到一个 "y "的导数的向量。正如我们在描述中所说,diff()输出向量的大小比输入向量大n-1个元素,每次这个函数通过输入 "n "递归应用时都会发生这种情况,所以" x",和 "d "将不再有兼容的大小。如果我们想表示波及其导数,"d "的大小与 "x "的大小是不相容的。因此,我们必须通过 "d "的大小来定义它,如代码的最后一行所示。下面,你可以看到正弦 "y "和它的近似导数 "d"。

总结

这篇MATLAB文章解释了如何使用MATLAB的diff函数来寻找矩阵或向量中相邻元素之间的差异。为了帮助您了解如何使用这一资源,我们创建了一个实际的例子,其中有代码片段和图片,用于说明这一函数工作的每种模式和不同维度。我们还看到了对该函数的结构、输入和输出参数以及diff()所接受的数据类型的描述。我们希望你觉得这篇MATLAB文章对你有帮助。请参阅其他Linux提示文章,了解更多提示和信息。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3