MATLAB使用教程与知识点总结(持续更新中)

1. MATLAB界面

59dd9d06b00e40a3b0de83d7028be1a1.jpg

1.1 MATLAB工具栏

eeebde37683f4753abb49cd46214a581.jpeg

1.环境部分要注意预设设置路径两个按钮,预设就相当于是设置,可以调节界面,字体,显示语言等;设置路径是在添加第三方工具包的时候需要用到,可以理解为添加插件
2.运行节:用光标选中某个节即可运行某一节代码。设置分节符 %%(后面记得加个空格)
3.设置断点:Matlab设置和VSC一样非常方便,只需要在代码左边点击一下出现红点即可
4.清除断点:点击断点下的那个三角形,就可以选择清除所有断点。

*Matlab中的注释

%% 独占一行的注释(有上下横线分割)

% 普通注释

matlab学习指南(2):安装工具箱Toolbox的方法(详细图解)_matlab toolbox-CSDN博客文章浏览阅读9.8k次,点赞7次,收藏32次。Matlab安装工具箱操作(详细图解说明),点击“File->Set Path->Add Folder或者Add with Subfolders”(中文版选择面板中的“设置路径”,也可以在“帮助”中查找),添加刚才解压拷贝的文件夹。这里我们采用安装CVX凸优化的工具箱为例子,向大家说明具体步骤。将下载的工具箱压缩包解压,然后将该文件夹拷贝至Matlab的Toolbox目录。首先是找到我们需要的工具箱地址,这里我将常见的各类工具箱进行了汇总,放在了下面链接,需要的可以点击搜索。_matlab toolboxhttps://blog.csdn.net/moumourenaini/article/details/131651436?ops_request_misc=&request_id=&biz_id=102&utm_term=matlab%E5%AD%A6%E4%B9%A0%E6%8C%87%E5%8D%97&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~sobaiduweb~default-7-131651436.nonecase&spm=1018.2226.3001.4450

1.2 编辑器窗口

编辑器窗口是用来创建.m脚本文件的,和命令行窗口的区别就像是VS Code的文本编辑和终端输入。调出的方法就是在菜单栏中点击新建即会自动弹出一个编辑器窗口:

如果选择保存,会默认保存在左侧的当前文件夹中,类似于一个工作区。
  注意:

a.文件名命名要用英文字符,首字符不能是数字或下划线;

b.文件名不能与matlab的内部函数名相同。

c.文件存储路径最好为英文路径。

d.文件名中不能有空格。若需要用两个或以上单词组合作为文件名:直接连接组合 / 把每个单词首字母大写以作区分 / 使用下划线。如 good bye,应该写成GoodBye或者Good_Bye。

1.3 常见MATLAB工具箱

   常见的MATLAB工具箱有以下七种:        

 1) Communications Toolbox(通信工具箱);   

 2) Control Systems Toolbox(控制系统工具箱);     

 3) Data Acquisition Toolbox(数据获取工具箱);       

 4) Database Toolbox (数据库工具箱);       

 5) Filter Design Toolbox(滤波器设计工具箱);     

 6) Fuzzy Logic Toolbox(模糊逻辑工具箱);       

 7) Image Processing Toolbox(图像处理工具箱)

2.变量

2.1 清空环境变量及命令

clear all     % 清除Workspace中的所有变量(右侧工作区)

clc             %清除Command Window中的所有命令(命令行窗口)

例(1)计算a*6,a=8

clear all %清空
clc % 情况工作区
a=8;
b=a*6;
b

2.2 变量命名规则

①变量名区分大小写

②变量名长度不超过63位

③变量名应该有一个字母引导,后面可以跟字母、数字、下划线等,如,sum1,sum_1。

2.3 预定变量(常量) 如  pi(π)等

ans 如果没指定输出到一个变量,系统自动创建 ans ,存储输出结果
eps机器的浮点运算误差限,即相对精度
piπ, 3.1415926535897.... ,返回圆周率的近似值
i, j基础的虚数单元
inf返回  IEEE 算法的正无穷大量,如 n/0 即产生 inf( 其中 n  为实数) )
NaNNot- a a-- Number ,返回  IEEE 算法的非数值,如 0/0 或 inf/inf ,关于  NaN 的算术运算等
computer识别 MATLAB 运行的计算机类型
versionMATLAB 版本
intmax所用机器能表示的最大整数
intmin所用机器能表示的最小整数
realmax所用机器能表示的最大正浮点数
realmin所用机器能表示的最小正浮点数

详见文章:

Matlab的变量_matlab 局部变量-CSDN博客文章浏览阅读187次。在Matlab中,变量是用于存储和操作数据的标识符。本文着重向读者介绍在Matlab中变量的命名规则和常见变量、特殊变量,以及区分全局变量,局部变量和永久变量的区别。_matlab 局部变量https://blog.csdn.net/L_1275403750/article/details/132175276?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169850130816800225551635%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=169850130816800225551635&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~sobaiduend~default-2-132175276-null-null.nonecase&utm_term=matlab%E5%8F%98%E9%87%8F&spm=1018.2226.3001.4450

3.数据类型(结构)


3.1 数值型

b8e30e2a16534fe6853b9c5043e8530e.png

3.2 字符与字符串

用单引号括起来

注(辨别):符号性变量

25c1bddebf544ef985bdb7a96a61c3e0.png

3.3 矩阵

(1)矩阵变量      

MATLAB以矩阵作为变量的基本形式,在进行编程、仿真计算工作时需要将矩阵直接输入MATLAB中,其中最方便的是将矩阵直接输入,也可以由原有的矩阵生成新的矩阵。

在输入的过程中,需要遵循以下规则:    

①中括号[ ]把所有矩阵元素都括起来。    

②同一行的不同元素之间数据元素用空格或逗号间隔。    

③用分号(;)指定一行结束。    

④也可分成几行输入,用回车代替分号。    

⑤数据元素可以使用表达式,系统将自动计算。

(2)矩阵元素    

采用下标来表示矩阵元素,其基本形式如A(i,j),i和j表示元素在矩阵中的行和列的位置,可以直接调取元素对其修改,矩阵中的元素也可进行数值计算。

(3)多维数组

多维数组迎合了许多多维的科学计算。在MATLAB中数据的逻辑性是可以表现出多维,但在物理内存中的形式确实简单按列存放的。可以将二维以后的数据按照页的概念理解,每页都看成一个二维数组,其生成和元素的访问都和二维矩阵类似。

6bcd8f04fea34f87b021ba2df94633d3.jpg

       1)初始化矩阵

 y=logspace(a,b,n)    常量对数分隔生成法

   

 2)子矩阵提取

17e52374541c481585b87117892f50d7.png

标识和提取练习

1.vector   

向量,即一维数组或序列,可以是行向量或列向量,用 [] 或 , 或 ; 分隔。用于存储和操作一系列相关的数值。矢量可以通过手动创建或使用内置函数生成。

>>x=[3 6 7 9 10];

x(3)   x(2:4)    x(4:end)   x(3:-1:1)  x([4 2 5]) x(1)=1;

2.array or matrix

>>A=[1,2,3;4,5,6;7,8,9;] A(2,3)    A(3,:)      ( A(:))’    A(6)

array:数组,可以建立任意尺寸和维数,数组的建立、存储与矩阵完全相同,                             乘法用.*   ,除法区分./和.\     , 幂运算、开方运算是对数组中的每个元素分别进行运算。

matrices(matrix):矩阵,二维数组,乘法运算用   *    ,除法运算区分右除/和左除\,幂运算、开方运算无需对矩阵中的每个元素分别进行运算。

3.4 数组

 1)元胞数组(单元数组cell array):

%元胞数组
A = cell(1,6)
A{2} = eye(3) %2021版本前的matlab下标从1开始
A{5} = magic(5)
B = A{5}

是MATLAB中特有的一种数据类型,是数组的一种,其内部元素可以是属于不同的布局类型,概念理解上,可以认为它和C语言里面的结构体、C++里面的对象很类似。元胞数组是MATLAB中的特色数据类型,它不同于其它数据类型。

   单元数组的概念

  • 基本组成是单元(cell),用来存放不同类型的数据,如矩阵、多维数组、字符串、单元数组及结构数组等。
  • 单元数组可以是一维的,也可以是多维的。
  • 这一数据类型在仿真系统模型中经常见到,另外在函数的编写中一般也会用到,如由不同类型输入参数组成的 varargin 即是单元数组类型。

   单元数组的创建

  • 直接使用{ }创建;
  • 在原有的单元数组基础上不断地扩展,类似于矩阵的扩展操作;

62109505d37b48f2a0efe0b03c025a27.png55431f4cea3544759c1300a3f7ecb3e5.png7f74e0cba36b45e0b02980c433684aca.png

  • 直接给单元数组的每个单元赋值;

d6b449bcbe41465c95b44f1072638a95.png

  • 合并不同的单元数组。

 2d1569c40ba04181a7c15d1fc3549733.png

 单元数组的操作

  1. 单元数组的内容获取命令celldisp(C)
  2. 图形化的显示方式cellplot(c)
  3. 也可直接读取具体的单元内容,或类似读取矩阵元素值的方式读出部分单元内容。

  2)结构数组(structure array)

       结构数组的概念

  • 结构数组的基本组成单位是结构,每一个结构包含多个域(fields),域中可
  • 以存放任何类型,任何大小的数组。

       结构数组的创建

  •  结构数组可以直接创建
  • 可利用 Struct 函数创建。(注:函数帮助文档导读)

:创建一个含有不同学生信息(姓名,性别,班级,成绩)的结构数组。

      函数法创建

格式:变量名=struct(‘field1’,val1,’field2’,val2,…)

>> zidonghua=struct(’class’,{‘计科1’,‘数据2’},’num’,[34,32],’data’,{[91,92,93…],[95,92,93…]};

>>zidonghua

     结构数组的操作    

     由于结构数组很像数据库中的一个数据表,因此对其操作可以借助数据库的概念,总结为增、删、改、查4种操作。

  1. ,即增加一条记录,如上例在创建学生信息的结构数组中,就是通过增加的方式添加学生信息;也可以是增加一个字段。
  2. ,即删除结构数组中的字段。MATLAB提供的 s = rmfield(s, ‘fieldname’)执行删除结构字段的操作。
  3. ,即改变结构数组中字段的内容。函数s = setfield (s,{i,j}, ‘field’, {k}, v) 执行修改字段内容的操作,相当于S(i,j).field(k) = V。

3.5 矩阵与数组的输入

直接赋值输入矩阵或数组      这种方式是最基本且最直接的输入方式。 例1 以直接赋值方式输入矩阵或数组。            >> A = [1 2 3;4 5 6;7 8 9]

快捷方式输入矩阵或数组 增量式输入 通过把小矩阵扩展成为大矩阵而输入。 例2 以快捷方式输入矩阵或数组。

fb4b6fe32502413aaba62c4d57e4941e.jpg

 通过提示语句输入矩阵或数组      ① x = input('prompt’)      ② x= input('prompt','s')   在屏幕上显示一个提示符,等待用户从键盘输入, 并读取用户输入到工作空中。                                               第一种方式供输入数字,而后一种方式供输入字符串。

例3 通过提示语句输入矩阵或数组。

1e65f8aa1d594d7ba1a89c3a4660960a.jpg

3.6 MATLAB支持的其他数据结构    (15种)

  • 基本数值变量类型:双精度、单精度
  • 逻辑性、时间、日期
  • 字符串型数据:用单引号括起来
  • 多维数组:是矩阵的直接扩展,多个下标
  • 单元数组:将不同类型数据集成到一个变量名下面,用{}表示
  • 类与对象:可以定义类变量。结构体表达, 定义和引用为 A.b, b为一个域

4. 常用函数

4.1 输入函数

1)数组与矩阵的输入

  •  MATLAB 中有不同的方法生成矩阵。
  •  概括起来,可以直接赋值输入,以快捷方式输入,通过提示语句交互输入、通过内建函数产生、加载外部数据文件等
  • 通过提示语句输入矩阵或数组

       x = input('prompt'),或 x= input('prompt','s')
       在屏幕上显示一个提示符,等待用户从键盘输入,并读取用户输入到工作空间中。
       第一种方式供输入数字,而后一种方式供输入字符串。

2)向量的输入

y = linspace(a,b)
y =linspace(a,b,n)
产生线性分布的向量,位于 a ~ b 之间共 100 个点值
产生线性分布的向量,位于 a ~ b 之间共 n 个点值
y = logspace(a,b)
y=logspace(a,b,n)
产生对数分布的向量,位于 10^a ~10^b 间共 50 个点值
产生对数分布的向量,位于 10^a ~10^b 之间共 n 个点值

4.2 绘图

1)二维图形的绘制
      绘制二维图形的基本函数

  • 绘制二维曲线的最基本函数 plot,它的基本调用格式为:plot(x,y)
  • 其中 x 和 y 为长度相同的向量,分别用于存储 x 坐标和 y 坐标数据。
  • 图形参数设置

be0ea6ebdb104f8086b0821f4a76ceb4.png

坐标背景网络可用 grid 命令设置
其基本用法

  • grid on %显示网格线
  • grid off %去除网格线
  • grid %切换有无网格的状态

坐标框手工设置

  • 坐标框的设置,其基本用法:
  • box on %添加坐标边界
  • box off %去除坐标边界
  • box %切换有无坐标边界的状态
  • 坐标框的设置与 grid 类似,可依照上例练习。

图形标注的添加
图形的标注,可以分为图名标注、坐标轴标注、图例标注和文字注释。

  • 图名标注:title('string')
  • 坐标轴标注:xlabel('string'),ylabel('string')为横纵坐标添加标注。
  • 图例标注:legend('string1','string2',...)命令的不同形式为图形添加图例。
  • 文字注释:text(x,y,‘string’)在图形坐标(x,y)处书写注释。使用 figure 指定不同图形窗口 (hold on 的用法)
  • 系统默认使用“Figure No.1”窗口绘制图形。当第二次继续绘图时,仍在默认窗口绘制的话,即将以前的图形覆盖掉了。为此,可以使用 figure(h)来指定打开相应窗口。

注:使用 figure 指定不同图形窗口绘制多图。

多图绘制

1)采用hold on(/off)指令,将新产生的图形曲线叠加到已有的图形上。

2)采用subplot(n,m,k)函数,将函数窗口进行分割,然后在同一个视图窗口中画出多个小图形。

3)figure(n)打开多个窗口。

939db929cab643c4a5bff2c589e8da70.png

【MATLAB】基本绘图 ( 绘制多图 | 设置图形对话框在 Windows 界面的位置和大小 | 在一个图形上绘制多个小图形 )_matlab画几个页面的图_韩曙亮的博客-CSDN博客文章浏览阅读5.6k次,点赞8次,收藏44次。一、绘制多图、1、绘制多图、2、代码示例、二、设置图形对话框在 Windows 界面的位置和大小、三、在一个图形上绘制多个小图形、_matlab画几个页面的图https://blog.csdn.net/shulianghan/article/details/115836718?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169850086216800226533998%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=169850086216800226533998&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-2-115836718-null-null.nonecase&utm_term=%E4%BD%BF%E7%94%A8%20figure%20%E6%8C%87%E5%AE%9A%E4%B8%8D%E5%90%8C%E5%9B%BE%E5%BD%A2%E7%AA%97%E5%8F%A3%E7%BB%98%E5%88%B6%E5%A4%9A%E5%9B%BE&spm=1018.2226.3001.4450

例:画出连续时间信号的波形(将其放在一个图形窗口中)

(1)x(t)=u(t)

  (2)  x(t)=10e^{-t}-5e^{-2t}

  (3)  x(t)=cos(t)+sin(2πt)

%%注意:subplot要在plot之前,不然绘图容易出错
%M (1)
t=-1.5:0.01:2.5;   %定义域范围是[-1.5,2.5]                                                  
y1=heaviside(t);  
subplot(3,1,1);%三行一列第一幅图
plot(t,y1); 
grid on    %保留网格
axis([-1.5 2.5 -0.5 1.5])  %限制x轴范围是[-1.5,2.5],y轴范围是[-0.5,1.5]
xlabel('t'); %x轴贴上标签't'
ylabel('y'); %y轴贴上标签'y'
title('u(t)');

%M (2)
t=-2:0.01:5;    %定义域范围是[-2, 5]
y2=10*exp(-t)-5*exp(-2*t);
subplot(3,1,2); %三行一列第二幅图
plot(t,y2);
axis auto   %自动设置坐标轴,使图像显示效果最佳(这是默认状态)
grid on    %保留网格
xlabel('t'); %x轴贴上标签't'
ylabel('y'); %y轴贴上标签'y'
title('x(t)=10e^(^-^t^)-5e^(^-^2^t^)');

%M (3)
t=-7:0.1:7;  %定义域范围是[-7,7]
y3=cos(t)+sin(2*pi*t);
subplot(3,1,3); %三行一列第三幅图
plot(t,y3);
axis auto
grid on   %保留网格
xlabel('t'); %x轴贴上标签't'
ylabel('y'); %y轴贴上标签'y'
title ('cos(t)+sin(2πt)');

 效果如图:

matlab绘图 subplot函数使用方法_matlab subplot_平平无奇的小女子~的博客-CSDN博客文章浏览阅读10w+次,点赞134次,收藏891次。在平铺位置创建坐标轴语法subplot(m,n,p)subplot(m,n,p,‘replace’)subplot(m,n,p,‘align’)subplot(m,n,p,ax)subplot(‘Position’,pos)subplot(___,Name,Value)ax = subplot(___)subplot(ax)说明①subplot(m,n,p) 将当前图形划分为 m×n 网格,并在 p 指定的位置创建坐标轴。MATLAB® 按行号对子图位置进行编号。第一个子图是第一行的第_matlab subplothttps://blog.csdn.net/onlyfanlala/article/details/121706740?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169960321616800211526713%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=169960321616800211526713&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~top_positive~default-1-121706740-null-null.nonecase&utm_term=matlab%E4%B8%ADsubplot%E7%9A%84%E7%94%A8%E6%B3%95&spm=1018.2226.3001.4450关于subplot函数用法详见转载

绘图教程详见转载文章:

Matlab 画图(全网最优质文章)_matlab画图-CSDN博客文章浏览阅读3.4w次,点赞146次,收藏1.3k次。全文23幅画,你想找的基本都有,每幅图都有代码详解哦。_matlab画图https://blog.csdn.net/m0_62600503/article/details/125987698?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169960369516800186579692%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=169960369516800186579692&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~top_positive~default-2-125987698-null-null.nonecase&utm_term=matlab%E7%BB%98%E5%9B%BE&spm=1018.2226.3001.4450

4.3 空间管理命令

1)who、whos命令

   这两个命令是为了查看当前工作空间中存在哪些变量,who只显示变量的名称,而whos不仅可显示名称,还可进一步得到变量的详细信息。

2save、load命令

   当退出MATLAB时,在MATLAB工作空间中的变量会丢失。对工作空间中的变量进行保存可以调用save函数:

               save 文件名 变量列表 其它选项

   load命令可以将上述文件中的变量调入MATLAB并重新载入到工作空间,是与save命令相反的过程:   

              load 文件名 变量列表 其它选项

3)clc、clear命令

    clear:可以使用clear命令来删除特定的变量名,这样可以使得整个工作空间更简洁,同时节省一部分内存。

    clc:该命令为清屏命令,在编制某个程序或仿真计算时,为了保证当前显示界面的整洁,可以先清除屏幕。这种清屏只是清除命令窗口,并不是清除工作空间中的变量。

4)Ctrl+C                终止程序命令

5)format命令

是数据格式命令,可以用来设置数据在命令窗口的显示格式,数据长短、小数位数、十进制和十六进制等,而这种设置并不能改变数据的存储格式。vpa,sym (数据格式命令)

4.4 符号变量函数

1)创建符号型变量函数——sym和syms

syms需要在具体创建一个符号表达式之前,将表达式所包含的全部符号变量创建完毕。

sym函数的用处之一是创建单个的符号变量。这种创建方式不需要在前面有任何说明,使用非常快捷。正因如此,此创建过程中,包含在表达式内的符号变量并未得到说明,也就不存在于工作空间。

2)符号代数方程求解

solve函数对代数方程求解

dsolve函数对符号常微分方程求解。    使用说明:对于一个表达式中的多个参数,函数选取自由变量有以下几个原则: 按照函数中的参数选取指定自由变量; 如未指定,对表达式中的多个变量,首先选择x为自由变量。如果没有x,则选择字母顺序中最接近x的字符变量;如与x距离相同,选x后面的字符变量; 小写字母优先于所有大写字母; 小写字母i,j不能作为自由变量。

例1:求解方程  eq?ax%5E2+bx%5E%7B2%7D+c%3D0

例2:  求解方程组 eq?%5Cleft%5C%7B%5Cbegin%7Bmatrix%7D%202x%5E%7B2%7D+3x+y%3D0%20%26%20%26%20%5C%5C%20y%5E%7B2%7D-25x%3D0%20%26%20%26%20%5Cend%7Bmatrix%7D%5Cright.

12680f70fc09409c91320b6a67bbf18e.png

2)符号微积分运算

a083537f828947038cf05897019a1ced.png

b272cc4e7f104816a60ddaf331d34acc.png

3)Laplace变换及反变换

在符号工具箱中采用函数L=laplace(F)和F=ilaplace(L)进行变换与反变换。

在符号工具箱中采用函数F = ztrans(f)和f = iztrans(F)进行变换与反变换。

4.5传递函数相关函数

f8896d88b4774e7bb59b1bc6c20372f8.png

f39b93b4019941879ef5f72f5172b38e.png

例1:已知传递函数模型,将其输入到MATLAB工作空间中

eq?G%28s%29%3D%5Cfrac%7B10%282s+1%29%7D%7Bs%5E%7B2%7D%20%28s%5E%7B2%7D+7s+13%29%7D

cdbafe9d4e3e403a9a046f409a2b453d.png

例2:

eq?G%28s%29%3D%5Cfrac%7B3%28s%5E%7B2%7D+3%29%7D%7B%28s+2%29%5E%7B3%7D%28s%5E%7B2%7D+2s+1%29%28s%5E%7B2%7D+5%29%7D

先定义算子:s=tf('s')

>>s=tf('s')
  G=3*(s^2+3)/(s+2)^3/(s^2+2*s+1)/(s^2+5)

4.6 零极点函数的相关函数

c0d677f3100d4f64b06a38a6b1bcaecb.png

a55b199f25c1445ab4128223f8d9f61a.png

e9f346903dfb43f8a59e5bdb89645e50.png

4.7 状态空间函数的相关函数

b691667cf4214975afb9bdeb4c4499a4.png

dfe990f3a7ea49efbebd418f5d0cb126.png

04538bae62014c88b4901fd0b8f08fee.png2dfa3e5258d84d2b980d2be01dac9508.png

4.8 在线帮助命令

(1)help命令      

  该命令可以帮助我们了解命令或函数的信息,如果仅仅输入该命令,而没      有其他命令元素则可以得到当前MATLAB软件的目录列表。

(2)lookfor命令      

  该命令可以查找所有的MATLAB提供的标题或M文件的帮助部分,返回结果为      包含所指定的关键词项,其搜索的区域包含M文件的说明部分,搜索时间有        些长。

(3)doc 帮助文档;edit 函数文件

(4)帮助(Help)窗口          用来显示和查找有关帮助信息和例程。

5.运算

5.1 算数运算符

运算符意义运算符意义
+矩阵/数组相加'矩阵转置,对复数矩阵,A'是共轭转置
矩阵/数组相减.'矩阵转置,对复数矩阵,A'不是共轭转置
*矩阵乘.*数组乘
^矩阵幂.^数组幂
\矩阵左除.\数组左除
/矩阵右除./数组右除

5.2 关系运算符——比较两个运算元之间关系

运算符意义运算符意义
<小于<=小于等于
>大于>=大于等于
==相等~=不相等

5.3 逻辑运算符——处理两个运算元之间逻辑关系

&
|
~

一些相关逻辑函数如:

xor()异或   

all()判断矩阵或向量中元素是否全为真 

any()检验是否存在非零元素,全零则回零

Matlab中的逻辑运算:“any”,“all”-CSDN博客文章浏览阅读558次。1.any:检验是否存在非零元素。全零则回零!藐视NaN(0)!any(A)──如果A中存在非0元素,则返回true。如果A的所有元素为0,则返回false;忽略A中的NaN(当作0)。若A为矩阵,则检测A的每列中是否存在非0元素。any(A,dim)──dim=1,则检测A的每列中是否存在非0元素;dim=2,则检测A的每行中是否存在非0元素。2.all:检验是否所有元素非零。全非0则回1!..._matlab中all和any的区别https://blog.csdn.net/iteye_7879/article/details/81929478?ops_request_misc=&request_id=&biz_id=102&utm_term=Matlab%E4%B8%AD%E7%9A%84%E9%80%BB%E8%BE%91%E8%BF%90%E7%AE%97:%22ANY&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~sobaiduweb~default-0-81929478.nonecase&spm=1018.2226.3001.4450

5.4 矩阵的基本运算

功能运算函数备注 
矩阵转置如果矩阵A是复数矩阵,则A’为其负数共轭转置矩阵,非共轭转置矩阵使用conj(A)实现。
求逆矩阵inv  矩阵A可逆,则矩阵A的逆矩阵是唯一的。
求特征值eig设A为n阶矩阵,λ是一个数,如果方正Ax=λx存在非零解向量,则称λ为A的一个特征值,相应的非零向量x称为特征值λ对应的特征向量。
求特征多项式poly
求方阵的行列式det
求解线性方程组AX=B(XA=B)若方程组有解,则X=A\B(X=B/A),可以利用矩阵运算求出方程式的解。

6. MATLAB语言的程序设计

  • MATLAB 程序以 m 为扩展名的文件(M-file)保存。(4)求特征多项式       运算函数:poly (5)求方阵的行列式       运算函数:det (6)求解线性方程组      线性方程组的一般矩阵形式表示如下:AX=B(XA=B)      若方程组有解,则X=A\B(X=B/A),可以利用矩阵运算求出方程式的解。
  • 这样的 m 文件有 2 种:脚本文件(Scripts)和函数文件(Functions)。其中函数文件是 MATLAB 程序设计的主流。

脚本文件

1. 没有输入和输出参数,只是命令叠加。
2. 执行简单,用户只要在 MATLAB 的提示符下输入参数该文件的文件名,MATLAB 就会自动执行该 M 文件中的各条语句。
3. M 文件只能对 MATLAB 工作空间中的数据进行处理,文件中所有语句的执行结果也完全返回到工作空间中。
4. M 文件格式适用于用户所需要立即得到结果的小规模运算。 

M 函数格式

1.需要用户输入参数,允许零个或多个输入和输出。
2.第一行以 function 开头,函数名和文件名必须相同。不能直接输入文件名来运行,必须由其他语句调用。
3.除了输入和输出变量外,其他在函数内部产生的所有变量都是局部变量,只有在调试过程中可以查看,在函数调用结束后这些变量均将消失。
4.函数可以按少于文件规定的输入输出调用,但不能多于规定输入输出。
 输入输出 input,disp
 参数
 nargin,nargout      Matlab之函数参数nargin和nargout-CSDN博客文章浏览阅读2.1k次,点赞3次,收藏8次。1、参数含义nargin:输入实参的个数;nargout:输出实参的个数。2、代码示例(以nargin为例)函数文件(文件名为testsum.m):function out=testsum(x,y,z)if nargin == 1 %输入实参1个 out = x;elseif nargin == 2 %输入实参2个 out = x + x*y..._nargouthttps://blog.csdn.net/Mrweng1996/article/details/104334199?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169850119216800215017399%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=169850119216800215017399&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~sobaiduend~default-1-104334199-null-null.nonecase&utm_term=matlab%E4%B8%ADnargin%E5%92%8Cnargout&spm=1018.2226.3001.4450

6.1 MATLAB 语言的流程结构

1.顺序结构 2.分支结构(if 和 switch) 3.循环结构(for 和 while)
基本的转移结构

语句结构

if 条件表达式
    语句段
end
 结构流程为:
如果满足条件表达式 1,则执行语句段 1;
否则跳过语句段 1 执行 end 之后的语句。
循环结构

循环结构由 while 或 for 语句引导,用 end 结束,这 2 个语句之间的部分称为循环体。
for 语句结构
for 循环变量 = v
         语句段
End
while 语句结构
while 条件表达式
          语句段
end

while 语句循环结构的条件表达式是一个逻辑表达式。只要其值为真(非零),就将自动执行语句段。一旦表达式为假就结束循环。
在以上的循环结构中可以加入 break 语句和 continue 语句进行程序流程的控制。
Break 循环中断循环指令 ,并跳出本循环结构
Continue 跳过此次循环到下一次循环
这 2 者的意义同 C 语言。

注:
while 与 for 不同:while 语句循环结构循环次数不确定;for 语句循环结构确定循环结构的执行速度较慢。所以在实际编程时,如果能对整个矩阵进行运算时,尽量不要采用循环结构而采取向量化编程(Vectorization)以提高代码的执行效率。

其他

9f9d0287f69646dd918debdafc5283ef.png

af02216c85b646f49971547c1dbbb125.png


6.2 MATLAB 函数基本结构

从函数 magic( )的源程序来看,MATLAB 函数的基本结构为:
函数定义行
function [返回变量列表]=函数名(输入变量列表)
• 帮助文本 注释说明语句段,由% % 引导
函数主体 函数体语句段(其中由%引导的是注释语句)

6.3 MATLAB 程序设计的一些问题

  • 符合规范的函数或程序文件命名。

1.虽然 MATLAB 没有要求函数名和文件名一定相同,但最好保持二者相同。
2.函数名或程序文件名最好能表明其实现功能。

  • 采用结构化的程序设计。

1.尽可能采用结构化的程序设计。
2.在总体功能划分上则尽可能模块化,通常采用函数调用的方式。这时要注意其函数的编写,子函数的调用等问题。

  • 做好程序中的注释。

1.程序的注释有助于提高程序的可维护性。需要养成按照规范添加注释的习惯。
2.在文件前的注释一般应包括程序功能描述,编写日期、作者及版本信息,以及输入输出参数、程序使用说明等。

  • 采取一定措施提高运行效率。

1.尽量避免使用循环结构。
2.尽可能使用向量化编程方法。

  • 预先定义数组或矩阵维数。

虽然在 MATLAB 中无需明确定义和指定维数,但在使用时每当数组或矩阵维数超出现有维数时,系统就会自动为该数组或矩阵扩维,这样无形降低了程序运行效率。
预先指定维数并分配好内存,就可避免每次临时扩充维数,从而提高程序运行效率。

6.4程序调试

  • 出错原因:

1.格式错误:括号使用,大小写,函数名等,可以指出出错在哪一行。
2.算法错误:逻辑错误,控制权返回给命令窗口和工作空间。

  • 调试方法:

1.去掉分号
2.加入显示感兴趣变量的语句
3.function 前加%,将函数文件改为脚本文件。

6.5控制系统数学建模(后续更新)

1) 系统模型转换

  • ♦把其它类型的模型转换为函数表示的模型自身

51c4ef0a74154118b967f9101a342700.png

eeb5ed93650246269b27eb5244602509.png

  • ♦将本类型传递函数参数转换为其它类型传递函数参数

a8c91ce3242745de836bea78eed1a05a.png

  • ♦系统模型连接化简的相关函数

ea953754a2f04a42b66dbdecb8afd7c0.png

f4a89140cd7142039af07624c8f12fcb.png

  • ♦线性系统稳定性分析

609394a6762c4f06b32eda3feb12e5c5.png

c968c58eed5f4536be0b1622fa0d15ad.pngd998269638c4434db1827b5799128073.png

7. 基本语句结构

MATLAB 有 2 种基本语句结构:
直接赋值语句、调用函数语句


7.1 直接赋值语句

  • 变量=表达式                    %显示运行结果
  • 变量=表达式;                %不显示运行结果
  • 表达式                               %结果赋给常量 ans


7.2 调用函数语句

  • 函数的一般调用格式为:

                           [返回变量列表]=函数名(输入变量列表)

  • 在调用函数时,很多情况下,同一函数给出了若干种调用方法。这就要求在使用时
  • 根据需要调用。

注: 查阅函数 mean( ) 的帮助文档,并说明其不同用法:
M = mean(A)
M = mean(A,dim)

MATLAB中mean()的用法、含义、意思-CSDN博客文章浏览阅读3k次。MATLAB中mean()的用法、含义、意思_mean()https://blog.csdn.net/huiyayaya/article/details/128216838?ops_request_misc=&request_id=&biz_id=102&utm_term=MATLAB%E4%B8%ADmean()%E7%9A%84%E7%94%A8%E6%B3%95%E3%80%81%E5%90%AB%E4%B9%89%E3%80%81%E6%84%8F%E6%80%9D-CSDN%E5%8D%9A%E5%AE%A2&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~sobaiduweb~default-0-128216838.142%5Ev96%5Epc_search_result_base2&spm=1018.2226.3001.4450

8. 常用操作

a. 前后指令复用
  当你想在命令行中反复运算一个非常复杂的表达式时,如果不想每次都重新输入一遍怎么办?可以选择复制粘贴,但MatLab提供了一个更好用的方法,那就是通过上下键选择之前输入过的指令,这也是非常常用的功

b. 终止当前运算

进程终止操作:Ctrl + C ;

关掉Matlab:在命令行中输入 Exit 或 Quit ,和点右上角的叉效果相同。

详见转载文章:(总结很全面)

matlab常用快捷键_matlab代码左移快捷键-CSDN博客文章浏览阅读4.3k次,点赞2次,收藏37次。https://www.cnblogs.com/caiyishuai/p/11390119.htmlMATLAB 命令栏显示处理的常用命令清屏:clc紧凑显示格式:format compact宽松显示格式:format loose数据高精度显示:format longG数据低精度显示:format short编辑器窗口(Editor)下的常用快捷键:自动对齐程序(整理缩进)-自动整理代码 用鼠标选中代码行,按Ctrl + I (我一般先 Ctrl+A 全选所有代码,再 Ctrl+I)快._matlab代码左移快捷键https://blog.csdn.net/weixin_44284128/article/details/110424100?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169960450816800192271933%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=169960450816800192271933&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-5-110424100-null-null.nonecase&utm_term=matlab%E5%B8%B8%E7%94%A8%E5%BF%AB%E6%8D%B7%E6%93%8D%E4%BD%9C&spm=1018.2226.3001.4450

  • 29
    点赞
  • 172
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值