MATLAB教程


MATLAB教程

教材使用MATLAB R2020a 完全自学一本通

MATLAB 2020a 窗口认识

matlab定义

Matlab 是数以万计的工程师和科学家都在使用的数据分析和设计的工具,基于矩阵的MATLAB语言是世界上表示计算数学最自然的方式,工程师和科学家使用内置图形可以轻松地可视化数据和深入了解数据。

常用命令

MATLAB中,空格被用作矩阵或数组元素之间的分隔符,所以在写代码时尽量不要有空格。

  • clear 清空窗口

MATLAB基础知识

数据类型

数据类型在C语言基础上进行补充,非记录所有数据类型。(数值类型、逻辑类型、字符串、函数句柄、结构体和单元数组)—-数组类型存储

数值类型

整数:(int8,uint8)、(int16,uint16)、(int32,uint32)、(int64,uint64)
注意:除int64和uint64类型外的所有整数类型,都可以进行数学运算。
单精度浮点数:single
双精度浮点数:double(MATLAB中默认的数据类型)


取整函数

  • floor(x),向下取整
  • ceil (x),向上取整
  • round(x),取最接近的整数,小数部分是0.5,则向绝对值大的方向取整
  • fix(x),向0取整

eps函数

用于查看精度,eps函数,可以获取一个数值和最接近该数值的浮点数之间的间隙。


复数

复数包括实部和虚部,MatLab中默认使用字符i或j作为虚部标志,在创建复数时,可以直接按照复数形式进行输入或者使用complex函数。

复数相关函数

  • real(z) 返回复数z的实部
  • imag(z) 返回复数z的虚部
  • abs(z) 返回复数z的模
  • angle(z) 返回复数z的辐度
  • conj(z) 返回复数z的共轭复数
  • complex(a,b) 以a为实部,b为虚部创建复数

面向复数设计的运算

复数z = a+bi=re^iθ
real(z)=a=rcosθ
imag(z)=b=rsinθ
abs(z)=根号下a^2+b^2
angle(z)=arctan(b/a)

%复数z1 = 4+3i,z2 = 1+2i,z3 = 2e^(Π/6)i表示,及计算z=z1*z2/z3
>> z1=4+3i,
z2=1+2i,
z3=2*exp(i*pi/6),
z=z1*z2/z3

z1 =

   4.0000 + 3.0000i


z2 =

   1.0000 + 2.0000i


z3 =

   1.7321 + 1.0000i


z =

   1.8840 + 5.2631i

>> angle(z)

ans =

    1.2271

>> angle(z)*180/pi

ans =

   70.3048

>> 

无穷量Inf和非数值量NaN

MATLAB中使用Inf、-Inf分别表示正无穷量和负无穷量,NaN表示非数值量

>> a = 0/0
b = log(0)
c = inf-inf

a =

   NaN


b =

  -Inf


c =

   NaN

>> 

逻辑类型

A =

     1     2     3     4     5     6     7     8     9


B =

     9     8     7     6     5     4     3     2     1

>> A == B

ans =

  1×9 logical 数组

   0   0   0   0   1   0   0   0   0

逻辑函数

  • xor(x,y)指令的功能为异或运算,x,y同为零(假)或非零(真)时返回0,否则返回1
  • any(x)指令的功能为判断是否为零向量或零矩阵(向量或矩阵中的元素全部为零),如果是非零向量或非零矩阵,则返回1,否则返回0
  • finite 元素有限,返回真值
  • Isempty 参数为空,返回真值
  • isglobal 参数是一个全局变量,返回真值
  • ishold 当前绘画保持状态是“ON”,返回真值
  • isieee 计算机执行IEEE算术运算,返回真值
  • isinf 元素无穷大,返回真值
  • isletter 元素是字母,返回真值
  • isnan 元素为不定值,返回真值
  • isreal 参数无虚部,返回真值
  • isspace 元素为空格字符,返回真值
  • isstr 参量为一个字符串,返回真值
  • isstuden MATLAB为学生版,返回真值
  • isunix 计算机为UNIX系统,返回真值

字符和字符串

基本矩阵操作

运算符

字符串处理函数

数组与矩阵

数组运算

矩阵操作

矩阵元素的运算

矩阵运算

稀疏矩阵

MATLAB编程基础

M文件编辑器

变量

MATLAB的控制流

控制程序流的其他常用指令

脚本和函数

M文件中变量的检测与传递

MATLAB程序的调试

数据可视化

图形绘制

二维图形绘制

三维图形绘制

四维图形可视化

数据分析

多项式及其函数

多项式的表示和创建

使用一维向量来表示多项式,将多项式的系数按照降幂次序存放在向量中。

  • [三次项系数 二次项系数 一次项系数 常数] 缺少的幂次的系数用0表示
  • 3x^4-10x^3+15x+1000 p=[3 -10 0 15 1000]
function s=pprintf(p)
%pprintf:for ploynomial printf
%pprintf(p) printf p as string
%2021.09.18
if nargin>1
    error('Too much input arguments') %nargin验证输入参数是否是一个
end
while p(1)==0  %将高次的零去掉
    p(1)=[];
end
l=length(p);
if l==0
    s='0';
elseif l==1  %常数
    s=sum2str(p(1));
elseif l==2  %一次函数
    s=strcat(num2str(p(1)),'x+',num2str(p(2)));
elseif l>2  %多次函数
    for i=1:l %循环数组每个值
        if i==1
            if p(i)==1
                s=strcat('x^{',num2str(l-i),'}');
            else
                s=strcat(num2str(p(i)),'x^{',num2str(l-i),'}');
            end
        elseif i==l
            s=strcat(s,'+',num2str(p(i))');
        elseif i==l-1
            s=strcat(s,'+',num2str(p(i)),'x');
        else
            if p(i)==0
            else
                s=strcat(s,'+',num2str(p(i)),'x^{',num2str(l-i),'}');
            end
        end
    end
end

结果

>> p=[1 0 3 5 7 9];
>> pprintf(p)

ans =

    'x^{5}+3x^{3}+5x^{2}+7x+9'

多项式求根

roots()函数求解一个多项式的根

%roots()函数使用
p=[3 -10 0 15 1000];
r=roots(p)
%poly()函数使用
r=[4.0283+2.8554i;4.0283-2.8554i;-2.3616+2.8452i;-2.3616-2.8452i];
p=poly(r)

结果:

r =

   4.0283 + 2.8554i
   4.0283 - 2.8554i
  -2.3616 + 2.8452i
  -2.3616 - 2.8452i


p =

    1.0000   -3.3334   -0.0001    5.0016  333.3381

多项式的四则运算

一、多项式的加法
多项式阶次不同时,低阶的多项式用首零填补

a=[1 2 3 4 5];
b=[1 2 3 4 5];
c=a+b
d=[0 0 1 2 3];
e=a+d

结果:

c =

     2     4     6     8    10


e =

     1     2     4     6     8

多项式的乘法

conv()函数支持多项式乘法(运算法则为执行两个数组的卷积)

数据插值

函数的极限

函数数值积分

符号计算

MATLAB符号计算概述

符号对象和符号表达式

符号表达式操作

符号表达式替换

符号函数的操作

符号微积分

符号积分变换

符号代数方程求解

符号微分方程求解

符号分析可视化

概率统计

产生随机变量

概率密度计算

累积概率分布

统计特征

统计作图

数学建模函数

曲线拟合函数

参数估计函数

参数传递

经典智能算法

粒子群算法的MATLAB实现

遗传算法的MATLAB实现

蚁群算法概述

偏微分方程工具箱

偏微分方程工具箱介绍

求解偏微分方程示例

优化工具箱

优化工具箱及最优化问题介绍

线性规划

无约束非线性规划

二次规划

有约束最小化

目标规划

最大最小化

小波分析工具箱

小波分析

小波分析工具箱介绍

小波分析在图像处理中的应用

Simulink仿真基础

Simulink概述

Simulink模型创建

过零检测和代数环

Simulink仿真应用

子系统的创建和封装

仿真模型的分析

运行仿真

模型调试

Simulink实例应用

句柄图形对象

句柄图形对象体系

句柄图形对象操作

对象属性设置

Figure对象

Axes对象

Core对象

Plot对象

Group对象

Annotation对象

图形用户界面

图形用户界面介绍

图形用户界面控件

对话框对象

界面菜单

编写M文件

图形用户界面创建工具GUIDE

文件I/O操作

文件夹的管理

打开和关闭文件

工作区数据——MAT文件

读/写二进制文件

读/写文本文件

文件内的位置控制

导入数据


文章作者: rep-rebirth
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 rep-rebirth !
评论
评论
  目录