MATLAB编程入门:从零开始

一. MATLAB语言优势

MATLAB语言是当前国际上自动控制领域的首选计算机语言,也是很多理工科专业最适合的计算机数学语言。通过学习MATLAB可以更深入地理解和掌握数学问题的求解思路,提高求解数学问题的能力。MATLAB语言的主要优势,现在列举五点:

  • 简洁高效性
  • 科学运算功能
  • 绘图功能
  • 庞大的工具箱与模块集
  • 强大的动态系统仿真功能


二. 基本命令简介

2.1 通用命令


命令名称功能说明
clear清除内存中所有的或指定的变量与函数
cd显示和改变当前工作目录
clc擦除MATLAB工作窗口中所有显示的内容
clf擦除MATLAB当前工作窗口中的图形
dir列出当前或指定目录下的子目录和文件清单
disp在运行中显示变量或文字内容
echo控制运行的文字命令是否显示
hold控制当前的图形窗口对象是否被刷新
home擦除命令窗口中所有显示的内容,并把光标移到命令窗口的左上角
pack收集内存碎片以扩大内存空间
quit关闭并退出MATLAB
type显示所指定文件的全部内容
exit退出MATLAB

2.2 常用的窗口帮助命令


help获得在线帮助
helpwin打开帮助窗口
demo运行MATLAB演示程序
lookfor按照指定的关键字查找相关的M文件
who列出当前工作内存中的变量
whos列出当前工作内存中的变量的详细信息
what列出当前目录或指定目录下的M文件,MAT文件和MEX文件
which显示指定函数和文件的路径
exist检查指定名字的变量或文件的存在性
doc在网络浏览器中显示指定内容的HTML格式的帮助文件,或者启动helpdesk

2.3 列举常用的语句

(1)help命令

直接输入help,MATLAB将列出所有的帮助主题,每个帮助主题对应于MATLAB搜索路径中的一个目录。help后可加帮助主题,可获得指定主题的帮助信息。

help后可加函数名;如果后加命令名,将得到指定命令的用法。

(2)demo命令

(3)helpwin命令

该命令用于打开MATLAB的帮助文件窗。

(4) lookfor 命令

该命令允许用户通过完整的或部分关键字来搜索要查找的内容。

(5)who和whos命令

该命令可列出在MATLAB工作内存中驻留的变量名

(6)exist命令

该命令可查找或检查变量和函数的存在性。


三. 变量基础

MATLAB语言的变量命名遵循以下四个规则:

  • 变量名必须是不含空格的单个词;
  • 变量名区分大小写;
  • 变量名最多不超过19个字符;
  • 变量名必须以字母开头,之后可以是任意字母、数字或下划线,变量名中不允许使用标点符号;

MATLAB中有一些保留的常量,如下:


特殊变量取值
ans用于结果的缺省变量名
pi圆周率
eps计算机的最小数,当和1相加就产生一个比1大的数
flops浮点运算数
inf无穷大,如1/0
NaN不定量,如0/0
i,ji=j=\sqrt{-1}
nargin所用函数的输入变量数目
nargout所用函数的输出变量数目
realmin最小可用正实数
realmax最大可用正实数

四. 数学运算与符号


+加法运算,适用于两个数或两个矩阵相加
-减法运算
*乘法运算
.*点乘运算
/除法运算
./点除运算
^乘幂运算
.^点乘幂运算
\反斜杠表示左除

MATLAB的每条命令后,若为逗号或者无标点符号,则显示命令的结果;若命令后为分号,则禁止显示结果。

“%” 后面所有文字为注释。

“...”表示续行。


五. 数据结构

5.1 数值型数据结构

按照IEEE标准,双精度数值变量有64位(占8字节),11指数位,53数值位和一个符号位,大小在-1.7\times10^{308}1.7\times10^{308}之间,可以利用double()函数进行转换。

unit8()代表无符号位的8位整形数据类型,值域是0至255,常用于图像表示和处理,可以节省存储空间,并提高处理速度。

其他的还有int8(),int 16(),int 32(), unit 16(), unit 32()。

5.2 符号型变量数据类型

符号型的表示,sym(A),常用于公式推导和解析解解法。符号变量声明的格式如下:

syms var_list var_props

举两个例子

syms a b real syms c positive

符号型数值可以采用变精度函数求值,格式如下:

vpa(A) vpa(A,n)

举两个例子

MATLAB代码如下:

ans1=vpa(pi) ans2=vpa(pi,60)

运行结果:

   ans1 =3.1415926535897932384626433832795


   ans2 =3.14159265358979323846264338327950288419716939937510582097494


5.3其他数据结构

字符串型数据需要用单引号括起来;

多维数组是矩阵的直接扩展,具有多个下标;

单元数组可以将不同类型的数据集成到一个变量名下面,用{}表示。比如用A{i,j}可以表示单元数组A的第i行,第j列的内容;

类与对象允许用户自己编写包含各种复杂详细的变量,可以定义传递函数。


六. 基本语句结构

6.1 直接赋值语句

格式遵循:赋值变量=赋值表达式

例题1

利用MATLAB将\pi^2的值赋给a

解:

MATLAB代码如下:

a=pi^2

运行结果:

a =9.869604401089358


例题2

利用MATLAB表示B矩阵:

B=\begin{bmatrix}1+9j&2+8j&3+7j\\4+6j&5+5j&6+4j\\7+3j&8+2j&0+j \end{}   B=\begin{bmatrix}1+9j&2+8j&3+7j\\4+6j&5+5j&6+4j\\7+3j&8+2j&0+j \end{}   B=\begin{bmatrix}1+9j&2+8j&3+7j\\4+6j&5+5j&6+4j\\7+3j&8+2j&0+j \end{}

解:

MATLAB代码如下:

 B=[1+9i,2+8i,3+7i;4+6i,5+5i,6+4i;7+3i,8+2i,1i]

运行结果:

B =

1.000000000000000 + 9.000000000000000i  2.000000000000000 + 8.000000000000000i 3.000000000000000 + 7.000000000000000i

   4.000000000000000 + 6.000000000000000i  5.000000000000000 + 5.000000000000000i 6.000000000000000 + 4.000000000000000i

   7.000000000000000 + 3.000000000000000i  8.000000000000000 + 2.000000000000000i 0.000000000000000 + 1.000000000000000i

6.2函数调用语句

函数调用在MATLAB中的格式如下:

[a,b,c]=my_fun(d,e,f,c)%[返回变量列表]=函数名(输入变量列表)

6.3冒号表达式

在MATLAB中格式如下:

v=s1:s2:s3%该函数生成一个行向量v%s1是起始值%s2是步长,如果省略则默认为1%s3是最大值

例题3

用不同的步距生成(0,\pi)间向量。

解:

MATLAB代码如下:

v1=0:0.2:pi %步距0.2 v2=0:-0.1:pi  %步距为负,不能生成向量,会生成空矩阵 v3=0:pi v4=pi:-1:0 %逆序排列构成新向量 v5=[0:0.4:pi,pi]

运行结果:

   v1 =

 列 1 至 6

0   0.200000000000000   0.400000000000000   0.600000000000000   0.800000000000000   1.000000000000000

 列 7 至 12

1.200000000000000   1.400000000000000   1.600000000000000   1.800000000000000   2.000000000000000   2.200000000000000

 列 13 至 16

2.400000000000000   2.600000000000000   2.800000000000000   3.000000000000000



   v2 =空的 1×0 double 行向量



   v3 =  0     1     2     3



   v4 =3.141592653589793   2.141592653589793   1.141592653589793   0.141592653589793



   v5 =

 列 1 至 6

0   0.400000000000000   0.800000000000000   1.200000000000000   1.600000000000000   2.000000000000000

 列 7 至 9

  2.400000000000000   2.800000000000000   3.141592653589793


七. 子矩阵的提取

基本语句格式如下:

B=A(v1,v2)%v1,v2分别代表提取行列号构成的向量

例题4

提取矩阵A的全部奇数行,所有列。

A=\begin{bmatrix}1&2&3&4\\3&4&5&6\\5&6&7&8\\7&8&9&0 \end{}   A=\begin{bmatrix}1&2&3&4\\3&4&5&6\\5&6&7&8\\7&8&9&0 \end{}   A=\begin{bmatrix}1&2&3&4\\3&4&5&6\\5&6&7&8\\7&8&9&0 \end{}

解:

MATLAB代码如下:

A=[1 2 3 4;3 4 5 6;5 6 7 8;7 8 9 0];B1=A(1:2:end,:) %提取全部奇数行,所有列

运行结果:

   B1 =

    1     2     3     4

        5     6     7     8

以例题4为例子可以进一步提取形成子矩阵。

MATLAB代码如下:

A=[1 2 3 4;3 4 5 6;5 6 7 8;7 8 9 0]; %提取3,2,1行,2,,3,,4列构成子矩阵B2=A([3 2 1],[2 3 4]) %将A矩阵左右翻转,即最后一列排在最前面B3=A(:,end:-1:1)

运行结果如下:

B2 =

    6     7     8

        4     5     6

        2     3     4



   B3 =

    4     3     2     1

        6     5     4     3

        8     7     6     5

        0     9     8     7


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空