Matlab学习笔记
一. Matlab概述
MATLAB(矩阵实验室)是数字计算,可视化和编程的第四代高级编程语言和交互式环境。MATLAB是由MathWorks开发的。
它允许矩阵操纵,绘制功能和数据; 实现算法; 创建用户界面; 与其他语言编写的程序(包括C语言,C++,Java和FORTRAN)进行交互; 分析数据; 开发算法; 并创建模型和应用程序。
它有许多内置命令和数学函数,可以帮助您进行数学计算,生成图形和执行数值方法。
1. MATLAB计算数学
MATLAB用于计算数学的各个方面,以下是最常用的常用数学计算方法 -
- 处理矩阵和数组
- 2D和3D绘图和图形
- 线性代数
- 代数方程
- 非线性函数
- 统计
- 数据分析
- 微积分和微分方程
- 数值计算
- 积分
- 变换
- 曲线拟合
- 各种其他特殊功能
2. MATLAB特点
以下是MATLAB的基本特性 -
- 它是数字计算,可视化和应用程序开发的高级语言。
- 它还为迭代探索,设计和解决问题提供了一个交互式环境。
- 它为线性代数,统计学,傅里叶分析,滤波,优化,数值积分和求解常微分方程提供了广泛的数学函数库。
- 它提供内置的图形,用于可视化数据和工具,用于创建自定义绘图。
- MATLAB编程接口提供了开发工具,以提高代码质量的可维护性并最大限度提高性能。
- 它提供使用自定义图形界面构建应用程序的工具。
- 它提供了基于MATLAB的算法与外部应用程序和语言(如C语言,Java,.NET和Microsoft Excel)集成的功能。
3. MATLAB使用
MATLAB广泛应用于物理,化学,数学和所有工程流领域的科学与工程计算工具。 它用于一系列应用,包括 -
- 信号处理和通信
- 图像和视频处理
- 控制系统
- 测试和测量
- 计算财务
- 计算生物学
二. Matlab基础语法
MATLAB环境的行为就像一个超级复杂的计算器。可以在>>
命令提示符下输入命令。
MATLAB是一个解释性的环境。换句话说,用户只要给出一个命令,MATLAB马上执行它。
1. 实践练习
在实践练习之前,首先打开 MATLAB R2018 ,如下图所示 -、
在命令行窗口中输入有效的表达式,例如 -
Trial>> 5 + 5
然后按回车,MATLAB立即执行,返回结果如下 -
让我们再来看几个例子 -
计算次幂
Trial>> 3 ^ 2 % 3 raised to the power of 2
ans =
9
MATLAB
计算正弦值
Trial>> sin(pi /2) % sine of angle 90o
ans =
1
MATLAB
除以零
Trial>> 7/0 % Divide by zero
ans =
Inf
MATLAB
数学计算表达式
Trial>> 123 * 23.259
ans =
2.8609e+03
MATLAB
MATLAB为某些数学符号提供了一些特殊表达式,如pi
为π
,Inf
为∞
,i
(和j
)为√-1
,.Nan
代表“非数字”等。
2.在MATLAB中使用分号(😉
分号(;
)表示结束语句。 但是,如果要抑制和隐藏表达式的MATLAB输出,请在表达式后添加分号。
例如,
x = 3;
y = x + 5
MATLAB
上面代码执行后,得到以下结果 -
Trial>> x = 3;
y = x + 5
y =
8
MATLAB
3.添加注释
百分比符号(%
)用于指示注释行。 例如,
x = 9 % assign the value 9 to x
MATLAB
还可以使用块注释运算符%{
和%}
编写一段注释。
MATLAB编辑器包括工具和上下文菜单项,以帮助添加,删除或更改注释的格式。
4.常用的运算符和特殊字符
MATLAB支持以下常用的运算符和特殊字符 -
运算符 | 使用说明 |
---|---|
+ |
相加; 加法运算符。 |
- |
相减; 减法运算符。 |
* |
标量和矩阵乘法运算符。 |
.* |
阵列乘法运算符。 |
^ |
标量和矩阵求幂运算符。 |
.^ |
阵列求幂运算符。 |
\ |
左除法运算符。 |
/ |
右除法运算符。 |
.\ |
阵列左除法运算符。 |
./ |
右除法运算符。 |
: |
冒号; 生成规则间隔的元素,并表示整个行或列。 |
( ) |
括号; 包含函数参数和数组索引; 覆盖优先级。 |
[ ] |
括号; 罩住阵列元素。 |
. |
小数点。 |
… |
省略号; 行连续运算符 |
, |
逗号; 分隔一行中的语句和元素 |
; |
分号; 分隔列并抑制输出显示。 |
% |
百分号;指定一个注释并指定格式。 |
_ |
引用符号和转置运算符。 |
._ |
非共轭转置运算符。 |
= |
赋值运算符。 |
5.特殊变量和常数
MATLAB支持以下特殊变量和常量:
名称 | 含义 |
---|---|
ans |
最近的回应/回答。 |
eps |
浮点精度精度。 |
i ,j |
虚构单位√-1 。 |
Inf |
无穷 |
NaN |
未定义的数值结果(非数字)。 |
pi |
数字π |
6. 命名变量
变量名称由一个字母组成,后跟任意数字的字母,数字或下划线。
MATLAB是区分大小写的编程语言。
变量名称可以是任意长度,但MATLAB只使用前N
个字符,其中N由函数namelengthmax
给出。
7. 保存工作
save
命令用于在工作空间中保存所有变量,它在当前目录中,以.mat
作为扩展名的文件。
例如,
save mymat
MATLAB
可以随时使用load
命令重新加载文件。
load mymat
三. Matlab变量
在MATLAB环境中,每个变量都是数组或矩阵。
可以以简单的方式分配变量。 例如,
x = 12 % defining x and initializing it with a value
MATLAB
MATLAB执行上述语句并返回以下结果 -
Trial>> x = 12 % defining x and initializing it with a value
x =
12
MATLAB
它创建一个名为x
的1×1
矩阵,并将值12
存储在其元素中。再来看一个例子,如下,
x = sqrt(16) % defining x and initializing it with an expression
MATLAB
MATLAB执行上述语句并返回以下结果 -
Trial>> x = sqrt(16) % defining x and initializing it with an expression
x =
4
MATLAB
请注意 -
- 当变量输入到系统中,可以在接下来代码中引用。
- 变量在使用前必须有值。
- 当表达式返回未分配给任何变量的结果时,系统将其分配给名为
ans
的变量,稍后可以使用它。
例如,
sqrt(99)
MATLAB
MATLAB执行上述语句并返回以下结果 -
Trial>> sqrt(99)
ans =
9.9499
MATLAB
可以使用这个ans
变量 -
sqrt(99);
99.499/ans
MATLAB执行上述语句并返回以下结果 -
Trial>> sqrt(99);
99.499/ans
ans =
10.0000
MATLAB
下面我们再来看另一个例子 -
x = 7 * 8;
y = x * 7.89
MATLAB
MATLAB执行上述语句并返回以下结果 -
Trial>> x = 7 * 8;
y = x * 7.89
y =
441.8400
MATLAB
1.多重分配赋值
可以在同一行上拥有多个赋值。 例如,
a = 2; b = 7; c = a * b
MATLAB
MATLAB执行上述语句并返回以下结果 -
c = 14
MATLAB
2.变量历史
who
命令显示使用过的所有变量名。
Trial>> who
您的变量为:
ans x y
MATLAB
whos
命令更多地显示变量 -
- 当前在内存中的变量
- 每个变量的类型
- 每个变量的内存分配
- 是否是复合的变量?
执行结果如下 -
Trial>> whos
Name Size Bytes Class Attributes
ans 1x1 8 double
x 1x1 8 double
y 1x1 8 double
MATLAB
清除命令从存储器中删除所有(或指定的)变量。
clear x % it will delete x, won't display anything
clear % it will delete all variables in the workspace
% peacefully and unobtrusively
MATLAB
3.长任务
长任务可以通过使用省略号(...
)扩展到另一行。 例如,
initial_velocity = 0;
acceleration = 9.8;
time = 20;
final_velocity = initial_velocity ...
+ acceleration * time
MATLAB
MATLAB执行上述语句并返回以下结果 -
Trial>> initial_velocity = 0;
acceleration = 9.8;
time = 20;
final_velocity = initial_velocity + acceleration * time
final_velocity =
196
MATLAB
4.格式命令
默认情况下,MATLAB显示四位小数位数。这称为:短格式。
但是,如果要更精确,则需要使用format
命令。
format long
命令显示十进制后的16
位数字。
例如 -
Trial>> format long
x = 7 + 10/3 + 5 ^ 1.2
x =
17.231981640639408
MATLAB
另一个示例如下 -
Trial>> format short
x = 7 + 10/3 + 5 ^ 1.2
x =
17.2320
MATLAB
format bank
命令将数字舍入到小数点后两位。例如,
format bank
daily_wage = 177.45;
weekly_wage = daily_wage * 6
MATLAB
MATLAB执行上述语句并返回以下结果 -
Trial>> format bank
daily_wage = 177.45;
weekly_wage = daily_wage * 6
weekly_wage =
1064.70
MATLAB
MATLAB使用指数符号显示大数字。
format short e
命令以指数形式显示四位小数加上指数。
例如,
format short e
4.678 * 4.9
MATLAB
MATLAB执行上述语句并返回以下结果 -
Trial>> format short e
4.678 * 4.9
ans =
2.2922e+01
MATLAB
format long e
命令允许以指数形式显示十六位小数加上指数。 例如,
format long e
x = pi
MATLAB
MATLAB执行上述语句并返回以下结果 -
Trial>> format long e
x = pi
x =
3.141592653589793e+00
MATLAB
format rat
命令给出计算结果最接近的合理表达式。 例如,
format rat
4.678 * 4.9
MATLAB
MATLAB执行上述语句并返回以下结果 -
Trial>> format rat
4.678 * 4.9
ans =
2063/90
MATLAB
5.创建向量
向量是数字的一维数组。MATLAB允许创建两种类型的向量:
- 行向量
- 列向量
行向量是通过用方括号中的元素集合来创建的,使用空格或逗号分隔元素。
例如,
r = [7 8 9 10 11]
MATLAB
MATLAB执行上述语句并返回以下结果 -
Trial>> r = [7 8 9 10 11]
r =
7 8 9 10 11
MATLAB
另一个示例
r = [7 8 9 10 11];
t = [2, 3, 4, 5, 6];
res = r + t
MATLAB
MATLAB执行上述语句并返回以下结果 -
Trial>> r = [7 8 9 10 11];
t = [2, 3, 4, 5, 6];
res = r + t
res =
9 11 13 15 17
MATLAB
列向量通过用方括号中的元素集合来创建,使用分号(;
)来分隔元素。
c = [7; 8; 9; 10; 11]
MATLAB
MATLAB执行上述语句并返回以下结果 -
Trial>> c = [7; 8; 9; 10; 11]
c =
7
8
9
10
11
MATLAB
6.创建矩阵
矩阵是数字的二维数组。
在MATLAB中,通过将每行作为一系列空格或逗号分隔的元素输入矩阵,并以行号分隔一行。 例如,创建一个3x3
的矩阵:
m = [1 2 3; 4 5 6; 7 8 9]
Maltab
MATLAB执行上述语句并返回以下结果 -
Trial>> m = [1 2 3; 4 5 6; 7 8 9]
m =
1 2 3
4 5 6
7 8 9