【MATLAB】常见语法结构和实用操作
创始人
2024-02-16 08:35:25
0

目录

语法结构

循环(遍历)结构

函数结构

画图操作

绘制函数图像

ezplot

figure多图绘制

创建多项式 

按照系数创建多项式

 利用多项式零点创建多项式

解方程组


语法结构

循环(遍历)结构

与其它编程语言类似,Matlab也有循环或者说是遍历的语法。下面以输出1到10为例:

for i = 1:10disp(i);
end

可以看出它的结构主要有三个部分:

第一部分是关键字for和结束标志end:

第二部分是循环初始值和结束位置,这里注意末尾的10也会进入循环,类似于C语言中的for循环的边界 i<=n ,当 i 为 n 是也会进入循环:

第三部分就是循环内容,也就是循环内部要实现什么目标了,这里我就单纯输出1到10所以数字即可:

函数结构

在我们看matlab中的函数之前,首先看一下C语言中的函数结构:

void func(int x, int y)
{return;
}

我们很明显可以看出C语言中函数结构主要包含下面几个部分:函数名、返回值、参数列表、函数内容。

之后再让我们看看matlab中的函数,matlab中的函数也由相似的几部分构成:

第一部分是function函数关键字和返回返回值关键字return:

 第二部分是一个类似函数调用的部分,主要由返回值c、函数名func(注意这里的函数名也是函数文件名)以及参数a构成:

 最后一部分激素函数内容部分了:

画图操作

绘制函数图像

matlab中画图的方式有很多种,在看如何画图之前,我们先来看几个基本的指令:hold onhold off grid on。其中grid on比较好理解,就是在我们画的图上面多了一些网格;而hold on 和hold off有点不太同,hold on可以让多个图并存,即如果此后我们更新图像那么原本的图也会发生改变,即牵一发动全身;hold off则不同,它的每一个图都是独立的,并且相互覆盖

grid on

syms y x;
ezplot(y==x,[-10,10]);
grid on;

hold on 和hold off的区别

hold on:

syms y x;
ezplot(y==x^2,[-6,6]);
hold on;
ezplot(y==x,[-10,10]);

 hold off:

syms y x;
ezplot(y==x^2,[-6,6]);
hold off;
ezplot(p==0,[-10,10]);
hold on
hold off

我们可以看到明显区别hold on的图保持了原来的两幅图,而hold off的图则覆盖掉了原来的第一副图。了解了上面的这些命令后我们先来看看其中比较常见的几个函数:

ezplot

这个函数是比较常见的绘图函数,它包括几种常用的用法、形式:

syms x a y;
y = sin(x);
ezplot('sin(x)');
ezplot(y);

其中包括字符串形式和关于函数的形式,其中ezplot(y),y=sin(x)就是关于函数的形式,y是一个x的函数;还有一种就是字符串形式,例如'sin(x)',其中单引号里面包括的就是一个字符串。 

但是往往并不是所以的函数都是显函数,有时候我们也会拿到一些隐函数,例如:y^{3}-6y+\sqrt{5-x}=0,此时我们就需要利用一个函数f来表示,然后令函数f为0得到的方程画出来的图就是隐函数的图形。

syms y x;
f = y^3-6*y-sqrt(5-x);
ezplot(f==0,[-6,6]);

figure多图绘制

我们知道,ezplot绘制的是一个图形,那么如果我们想要绘制一个框里面多个图像应该怎么做呢?这时候就需要用到figure的多图绘制。首先我们要绘制一个图,需要将x细分为一堆等长区间:

x = 0:0.0001:2; 

这里第一个0表示x的起始值,第三个2表示x的末尾值,而中间的0.001表示将x细分的步长。所以我们这里定义出来的x是一个矩阵,即如果在定义x为自变量的函数时,应该注意点了。再准备一个函数y,令y = x^{2}-6

y = x.*x - 6;

然后我们就可以开始准备画图了,首先准备一个figure框,也就是我们画图常用的哪个框框,并且使用hold on指令保持住这个框,方便接下来画图。然后操作分框函数subplot,这个函数用于将当前的figure框分为几个部分,也就是我们画几个图,它参数的三个数字,前面表示划分的行数,第二个表示划分的列数,第三个数字表示当前图像是第几个框(横向数)。以6个框为例:

subplot(321);
subplot(322);
subplot(323);
subplot(324);
subplot(325);
subplot(326);

然后就是对图像进行绘制(填充)了,我们使用fill函数,第一个参数为自变量,第二个参数为因变量,第三个参数为图像的颜色(英文字符或英文字符缩写均可)。最后的title函数里面跟的就是图像名,这样一个函数图像就画出来了!

x = 0:0.0001:2; 
y = x.*x - 6;
figure;
hold on;
subplot(223);
fill(x,y,'green');
title('y-x');

创建多项式 

下面我们看看在matlab中如何创建多项式,这是我看了其他几个很棒的博主的文章后学习到的,链接我放在了文章结尾。首先是创建多项式的思路,分为两种:按照系数来创建多项式;按照根来创建多项式,下面我们一个个看:

按照系数创建多项式

s = [9,8,7,6,5,4,3];
y1 = poly2sym(s);
disp(y1);

这里使用的是函数poly2sym来创建多项式,我们要创建一个多项式,需要向这个函数传递多项式各项的系数。以数组s为例,我们数组里有7个数字,将数组传递进去后我们得到的多项式的系数从小到大分别为数组最大位到数组最小位,例如上面的s数组创建出来的多项式为:

9x^{6}+8x^{5}+7x^{4}+6x^{3}+5x^{2}+4x^{1}+3

其实我们还可以利用一个与ploy2sym类似的函数ploy2str来创建多项式:

s = [9,8,7,6,5,4,3];
y2 = poly2str(s,'x');
disp(y2)

 不过我们可以利用whos看到这两个方法还是有区别的,它们创建出来的多项式的数据类型是不同的:

 利用多项式零点创建多项式

r = [0,1,3];
y = poly2sym(poly(r));
disp(y);

除了刚才利用系数来创建多项式的方法,我们还可以利用多项式的零点来创建多项式,例如我们得到多项式一组零点r=[0,1,3]。那么我们也可以先使用ploy函数处理零点,再利用poly2sym函数来创建多项式。

解方程组

前面说了一些语法的结构,下面我们来看一个更加实际的作用:求解线性方程组的解。要知道,之前我们求简单方程的解使用的是solve这个函数,但是我们有时候往往需要去求一些方程组,这时候就需要寻找别的方法了。

回顾一下线性代数,我们求解方程组还有一个方法就是使用矩阵求解,例如方程组:

\left\{\begin{matrix} 3x+5y-6z=9 \\x-8y+7z=6 \\2x+6y+3z=3 \end{matrix}\right.

我们使用矩阵求解的大致步骤就是求出系数矩阵,然后将两边乘系数矩阵逆矩阵消去系数的解就是X:

\begin{pmatrix} 3& 5 &-6 \\ 1& -8 &7 \\ 2&6 &3 \end{pmatrix}X = \begin{pmatrix} 9\\6 \\3 \end{pmatrix} =>X = \begin{pmatrix} 3& 5 &-6 \\ 1& -8 &7 \\ 2&6 &3 \end{pmatrix}^{-1}\begin{pmatrix} 9\\6 \\3 \end{pmatrix}

所以我们使用matlab求解线性方程组的方法也类似,首先定义一个系数矩阵A,然后再定义一个矩阵B,X的结果就是A^{^-1}B。对应着,matlab表现A^{^-1}的方法是A后面跟一个反斜杠 \

A = [3 5 -6;1 -8 7;2  6 3];
B = [9;6;3];
X = A\B;
disp(X);

参考资料:

https://blog.csdn.net/qq_38431572/category_9417566.html

matlab多项式构造/求根/某处的值_执念斩长河的博客-CSDN博客_matlab多项式构造

matlab中 hold on 与 hold off,figure作用_江江江在奋斗的博客-CSDN博客_figure hold on

matlab中的ezplot函数详解_「已注销」的博客-CSDN博客_ezplot函数

相关内容

热门资讯

家装实木高档油漆门广告语 家装实木高档油漆门广告语  1、一“门”心思只为您。  2、打开木门,开启幸福。  3、独门工艺,专...
厕所文明标语 厕所文明标语(通用185句)  在现实生活或工作学习中,大家都对那些朗朗上口的标语很是熟悉吧,标语是...
宣传稿格式 宣传稿格式  一、宣传稿的介绍  首先,新闻宣传稿要重视宣传的本身意义和作用。  其次,要懂得如何在...
校园文明标语 校园文明标语  在学习、工作、生活中,大家都接触过比较经典的标语吧,标语的作用是便于“造势”,形成一...
打折促销标语 打折促销标语大全  XX真情回馈理惠X折  终极X小时终极抄底价  心动,不如行动!  不做不休用暴...
最新学习小组口号 最新学习小组口号  在日常的学习、工作、生活中,大家都经常接触到口号吧,口号作为意识的表现形式之一,...
垃圾分类标语 垃圾分类标语(精选140句)  在平时的学习、工作或生活中,大家最不陌生的就是宣传语了吧,宣传语具有...
安全生产横幅标语口号 安全生产横幅标语口号大全  ●安全人人抓,幸福千万家  ●安全生产 人人有责  ●安全生产 重在预防...
迎新的标语 迎新的标语(精选150句)  在日常学习、工作和生活中,大家都接触过比较经典的标语吧,标语不但折射着...
2022年村委会普法宣传简报 2022年村委会普法宣传简报  一、村委会相关介绍  村委会的全称为村民委员会,为中国大陆地区乡(镇...
广告公司广告语 广告公司广告语大全  广告公司广告语大全广告语指通过各种传播媒体和招贴形式向公众介绍商品、文化、娱乐...
经典安全标语 经典安全标语大全  导语:安全是宝藏,安全是生命,安全是金钱。下面是由小编为你整理的经典安全标语大全...
奶茶广告语 奶茶广告语大全  广告,顾名思义,就是广而告之,向社会广大公众告知某件事物。那么奶茶店的广告又该是怎...
2班军训押韵口号_口号 2班军训押韵口号_口号  无论在学习、工作或是生活中,说到口号,大家肯定都不陌生吧,口号是供口头呼喊...
煤矿安全生产的标语 煤矿安全生产的标语(通用255句)  标语是指:文字简练、意义鲜明的宣传、鼓动口号。标语是用简短文字...
光盘行动标语 关于光盘行动标语(精选100句)  在平凡的学习、工作、生活中,许多人对一些广为流传的标语都不陌生吧...
大学生评语 关于大学生评语  所谓评语,就是对一个人的全面(包括学习、生活、心理等方面)印象、评价之类的语言。下...
淘宝卖家评语 淘宝卖家评语  随着互联网的告诉发展,越来越多人喜欢在网上购买东西。那么在淘宝购物后要怎么评价呢?下...
课堂教学评语 课堂教学评语大全  在平凡的学习、工作、生活中,大家都用到过评语吧,通过评语的导向作用,我们可以引导...
2022年会横幅标语 2022年会横幅标语  在学习、工作或生活中,大家都接触过很多优秀的标语吧,标语是用简短文字写出的有...