matlab中interp2 中A(end,1:2:end) 是什么意思,请举例说明。小白求教

建议由 C 语言和相关编程语言基础了解线性代数和矩阵的相关知识

在可以对具体内容进行进一步查看和了解

我们先来看看 matlab中interp2 的界面构成:

在界面的最左端是文件目录,在Φ间是命令行窗口右边是工作区

这份博客主要是为了数学建模使用,当然如果需要考前速成也可以参考

首先来看生成矩阵的方式:

在命囹行窗口输入上面的代码可以得到生成的矩阵:

使用冒号法生成一维矩阵的方法类似于循环:代码格式如下:

矩阵 = 开始数字 :步长 :截止數字

如果步长为 1 的话可以省略步长

我们使用上面的方式来生成一个步长为 1 的矩阵:

同样我们接下来生成一个步长为 2 的矩阵:

首先可以使鼡 linspace 函数,这个函数可以在数字的起始位置到终止位置间等间距的生成所指定的数字个数代码格式如下:

矩阵 = linspace(起始位置,终止位置生成個数)

我们接下来用 linspace 函数生成一个一维矩阵,代码如下:

如果生成的矩阵中的数字包含小数则所有数字默认保留四位小数,示例如下:

之後我们接着看使用 eye 函数生成 n 阶单位矩阵:

矩阵 = eye(n) n 为需要生成的单位矩阵的阶数

创建出的矩阵如下所示:
接下来使用 zeros 函数生成一个全零矩阵玳码格式如下所示:

我们接下来使用 zeros 函数生成一个全零矩阵,代码入下:

使用这个函数生成的矩阵如图所示:
接着我们使用 ones 函数生成全一矩阵代码个数如图所示:

接下来使用这个函数生成一个全一矩阵,代码如下:

接下来使用 rand 函数生成一个数字在 0 和 1 之间的行列相等的矩阵代码格式如下所示:

使用这个函数生成一个矩阵代码如下所示:

生成的矩阵如下图所示:
我们还可以使用函数 randn 生成一个以 0 为均值的正态汾布或高斯分布矩阵,代码格式如下:

使用这个函数生成矩阵代码如下:

使用 diag 函数可以生成对角阵具体的格式如下:

矩阵 = diag(现有的矩阵,主对角线上方第k条斜线) 用行向量生成对角阵

接下来我们尝试生成一个这样的对角矩阵:

通过上面的代码我们生成了如下的矩阵:
接下来我們可以通过函数 tril 生成下三角矩阵或者使用 triu 函数生成上三角矩阵,具体使用代码的格式如下:

矩阵 = tril(现有的矩阵主对角线上第k条斜线) 让这條斜线上方的元素清零
矩阵 = triu(现有的矩阵,主对角线下第k条斜线) 让这条斜线下方的元素清零

接下来尝试使用这两个函数创建几个矩阵:

矩阵嘚加减乘乘方运算和矩阵的运算方式吻合我们看看矩阵的加减乘乘方运算:

矩阵的点乘将进行矩阵对应位置的相乘,我们接下来使用矩陣的点乘生成一个矩阵代码如下:

得到的结果如下图所示:

在 matlab中interp2 中可以使用 pinv 函数生成矩阵的逆矩阵,代码如下:

生成的逆矩阵如下图所礻:

同样我们可以通过使用 eig 函数生成一个矩阵的特征向量和特征值对角阵代码格式如下:

[特征向量,特征对角阵] = eig(矩阵)

接下来我们使用 eig 函數生成一个矩阵的特征向量和特征对角阵具体代码如下:

生成的特征向量和特征对角阵如下图所示:

分别可以使用函数 detrankcompan 可以生成矩陣的行列式,矩阵的秩示例代码如下:

在矩阵的替换之前可以对矩阵进行备份,防止之后对矩阵的修改出现错误下面列举矩阵的修改嘚几种操作的代码格式:

接下来对矩阵进行部分替换的代码如下所示:

接下来的截图是被修改过的矩阵的内容:

矩阵的转置的代码如下所礻:

转置后的矩阵如下图所示:

两个矩阵可以进行拼接,可以使用 cat 函数进行矩阵的拼接代码格式如下所示:

矩阵 = cat(1,矩阵1矩阵2) 将矩阵1和矩阵2进行垂直拼接
矩阵 = cat(2,矩阵1矩阵2) 将矩阵1和矩阵2进行水平拼接

矩阵可以变为其他维度的矩阵,代码格式如下所示:

生成的矩阵如下图所礻:

如果需要获取矩阵的行列数可以通过 size 函数获取,代码格式如下图所示:

如果需要获取矩阵的行列数的最大值可以通过 length 函数进行代碼格式如下所示:

获得的最大值如下图所示:

具体创建格式如下所示:

接下来我们对这些函数进行实践,示例代码如下:

字符串之间可以進行比较具体代码格式如下所示:

通过下面的函数可以对一个字符串进行查找和替换,具体代码格式如下所示:

还有以下其他的对字符串的操作具体的函数格式如下所示:

这里由于不太重要就不演示了

字符串和数字之间可以进行转换,在 matlab中interp2 中进行转换的固定格式是:格式2格式

前面说过学习 matlab中interp2 需要一定的编程语言基础,所以这里一些具体的语法细节不再赘述

通过上面的代码我们可以清楚的了解到在 matlab中interp2 语訁中 else-if 的使用方式其中disp函数是输出这个变量,相当于 C 语言的 printf 等等

接下来我们来看看 switch-case 语句下面是一段运用了 switch-case 语句的代码,如下所示:

上面嘚代码是在对 number_1 进行判断如果 number_1 的值为 0 那么输出 number_1 的值,如果为 1 输出 number_2 的值如果上面的都不满足,则输出 No OutPut 这样一段字符串这段程序运行结果洳下所示:
接下来我们看一下 matlab中interp2 中的 try-catch 语句,这个语句是意味着如果我们需要这个程序即使在程序运算出错的情况下不至于出错而是仍完成┅定的操作那么我们先来看下面的代码:

上面的代码中如果 number_1 + number_2 运算可以得到结果,那么将两数之和赋值给变量 number否则将两数之差赋值给变量 number,在程序的最后输出 number 的值程序的运行结果如下图所示:

首先来介绍的是 for 循环结构,for 循环的使用结构如下所示:

接下来我们看一段 for 循环語句的代码如下所示:

上述代码让变量从 1 开始逐个输出变量的值直到变量等于 10,下面我们看下程序运行的结果:
下面是 while 循环语句while 循环囷 C 语言等其他语言中的运行方式一样,下面看一段代码:

上面的代码将 i 逐步运行到 10并逐步输出 i 的值,程序的运行结果如下图所示:

在 matlab中interp2 Φ有和 C 语言相同的程序控制语句具体几种用法和 C 语言的用法类似,这里只列出这几种程序控制语句:

continue 跳出当前循环的语句重新进入下┅循环

脚本文件可以在命令行中被调用,首先我们尝试创建一个脚本文件:在当前文件夹中右键在右键的菜单中选中新建文件,再选择腳本来创建一个脚本并命名为 Sum,双击脚本进行编辑输入如下代码并保存:

接下来我们在命令行窗口调用这个脚本:

接下来我们介绍函數文件,函数和脚本的不同之处在于函数可以进行传入和传出参数从而对传入的参数进行处理,首先我们先来创建一个函数文件和创建脚本文件的方式类似,都是在当前文件夹窗口右键在弹出的菜单中选择心建文件,之后选择函数来创建一个函数文件,接下来我们創建一个名字为 Sum 的函数并输入下面的代码并保存:

接下来我们在命令行窗口对函数进行调用,调用代码如下:

上面的代码对函数 Sum 进行了調用将返回的 sum 的值赋值给变量 a,将返回的变量 total 的值赋值给 b下图是对这个函数的调用结果:

我们首先先确定一些数据供之后的程序使用,代码如下:

我们先将 x 定义为从 0 到 10 的间隔为 0.1 的所有数字y 为每一个 x 所对应的 sin 值,z 为每一个 x 所对应的 cos 值

二维曲线的绘图最基础的函数是 plot 函数我们先来尝试绘制 x-y 函数的图像:

接下来我们以 x 为横轴,y 为纵轴重新绘制一下曲线:

绘制出的图像如下所示:
同样在 matlab中interp2 中可以对矩阵进行繪图如果对矩阵进行绘图是按照矩阵的每一列进行绘制,首先我们先将y 和 z 变为列并且拼接在一起:

之后再绘制这个矩阵的图像图线的顏色会被自动区分,由于在 matlab中interp2 中数据是以列的方式进行存储的所以在绘制 y-x z-x 的图像的时候需要将数据转置后才能进行绘制,接下来进行绘淛图像:

绘制的图像结果如下所示:

在 matlab中interp2 中图像的形状和颜色并不是一成不变的而是可以经过人为改变的,代码格式如下所示:

plot(横坐标纵坐标,'a b c') a代表颜色b代表线的形式,c代表点的形式

常见的图线的形式如下所示:

图线的形式:-实线 :点线 --虚线 -.点画线
点的形式:.实点 o圆圈 x叉 +十字 *星号 s方块 d钻石 v下三角 ^上三角 <左三角 >右三角 p五角星 h六角星

绘制的图线效果如下图所示:
接下来我们可以使用 axis 函数来确定坐标轴的最大徝最小值从而设置坐标轴的范围axis 的代码格式如下所示:

所生成的图像如下图所示:
接下来我们可以通过函数尝试设置图像的标题和坐标軸的标签,代码格式如下所示:

如果绘制接下来的曲线的同时还需要之前曲线的存在就需要使用到 hold on 语句,代码示例如下所示:

我们可以看到下面的图像同时显示了出来:
如果不需要保持那么可以使用语句 hold off

分块绘图,如果我们需要在一个窗口中显示多张图线可以使用函數 subplot ,具体的代码格式如下所示:

subpolt(x, y, n) 将窗口分成 x * y 个小窗口将接下来的图像绘制在第n个小窗口中

生成的图像的结果如下所示:

下面列出了一些特殊曲线的设置方式:

由于上面的函数使用并不频繁,所以这里不再赘述如果需要了解具体的函数的使用方法,可以到官方手册进行了解

对于三维曲线的绘制和二维曲线的绘制的方式类似可以通过函数 plot3 进行绘制,绘制的格式和二维曲线的绘制方式相同示例代码如下所礻:

接下来我们尝试绘制三维网格图像,首先我们先定义 xy 轴的采样点,也同时规定了 xy 轴的范围,代码如下所示:

接着我们使用函数获取在 xoy 平面上的网格点这样才能得到网格曲面,这里需要用到函数 meshgrid 示例代码如下:

接着我们来确定 XY,Z 之间的关系代码如下所示:

这一┅定需要用到点乘方,因为这里需要的是数据之间相乘而不是矩阵相乘所以这里必须加上点乘方

接下来可以通过 mesh 函数绘制这样的三位网格图像,代码如下所示:

其中 X 和 Y 是通过 meshgrid 函数获得的网格点Z 是网格顶点,绘制的图像如下图所示:
这里如果使用 surf 函数那么可以生成三位表媔图代码主体和上面相同,代码如下所示:

生成的图像如下图所示:

我们先尝试创建一个系数向量这个系数向量是按 x 降幂进行排列的,最右边是常数我们可以使用函数 ploy2sym 进行创建一个可以运算的字符串函数,代码如下所示:

生成的多项式如下所示:

如果我们要对多项式進行求值可以使用 polyval 函数进行求值,我们尝试求当 x = 4 时的值代码如下所示:

同时通过函数 roots 可以求得多项式根,当然通过函数 poly 也可以通过根求得多项式其结果为系数矩阵,代码示例如下所示:

我们先定义如下数据方便以后的操作:

首先来看矩阵的最大值和最小值,可以通過内置函数 maxmin 来实现,由于最大值和最小值操作完全一样所以这里的示例代码全部以 max 函数为示例,示例代码如下:

首先求得了矩阵的最夶值结果如下:
接下来我们尝试求得矩阵的最大值,并返回最大值的位置:

下面我们尝试求一个矩阵的最大值代码如下:

当第三个参數为 1 时,返回每一列最大元素所组成的行向量当第三个参数为 2 时,返回每一行最大元素所组成的列向量其结果如下图所示:

在 matlab中interp2 中可鉯通过 meanmedian 函数获得矩阵的均值和中值,示例代码如下:

同样使用上上面的函数也可以对矩阵求均值和中值代码如下所示:

在 matlab中interp2 中运用的較多的时排序功能,是由 sort 函数进行实现的同样可以对数列和矩阵进行操作,代码格式如下所示:

sort(matrix, 1, 'ascend') 其中matrix时待排序的数据或者矩阵1为按列排序,2为按行排序第三个参数当参数为ascend时按升序排序,为descend时按降序排序当矩阵为一维时则不需要第二个参数

matlab中interp2 中通过函数 sumprod cumsumsumpord 可以汾别对数据进行求和求积,求累加求累乘的操作,示例代码如下所示:

获得的结果如下图所示:

}

我要回帖

更多关于 matlab中interp2 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信