0%

MATLAB学习

基础知识

变量名由大小写字母、数字和特殊字符(_和$)组成。只有前64个字符有效

可以使用;标记语句结尾,表示隐藏该行计算结果,也可以不标记语句结束

MATLAB的注释符是%

命令

用于管理会话的命令

clc用于清除命令窗口

clear用于从内存中删除变量

exist用于检查文件或变量是否存在

global声明变量为全局变量

help获取帮助

lookfor在帮助条目种搜索关键字

quit停止MATLAB

who列出当前所有变量的名称

whos列出当前变量的详细信息

用于系统的命令

cd更改当前目录

date显示当前日期

delete删除文件

diary开启/关闭日记文件录制

dir列出当前目录中的所有文件

load从文件加载工作区变量

path显示搜索路径

pwd显示当前目录

save将工作空间变量保存在文件中

type显示文件的内容

what列出当前目录中的所有MATLAB文件

wklread读取.wkl电子表格文件

输入和输出函数/命令

disp显示数组或字符串的内容

fsanf从文件中读取格式化的数据

format格式控制命令

fprintf执行对屏幕或文件的格式化写入

input显示提示并等待输入

其中,fsanffprintf函数的行为像C的scanfprintf函数,它们支持,%s格式化为字符串,%d格式化为整数,%f格式化为浮点值,%e科学计数法,%g%f%e中选择一个最紧凑的格式

特殊变量

ans表示最近计算的答案

eps表示浮点精度

ij表示虚数的单位

Inf表示无穷

NaN表示未定义的数值结果

pi表示$$\pi$$

运算符

关系运算符

除了不等于是~=以外,其他都跟C相同

逻辑运算符

短路运算:&&||

元素级运算:&|~

按位运算符

&|^~

除此之外还有一些位运算相关的函数

bitset(a,pos)bit设置为a的特定位置pos

bitshift(a,k)a向左移动kbit

矩阵与向量

由于MATLAB起源于FORTRAN,它的索引值起始于1而不是0

矩阵是数字的二维数组,通过以空格或逗号分隔的顺序输入每一行来创建矩阵,并用分号分隔行的结尾

1
2
m=[1 2 3;4 5 6;7 8 9]
C=1:3:20

也可以用一些专业函数产生新的数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
>> A=linspace(0,10,4)
A =
0 3.3333 6.6667 10.0000
>> B=zeros(2,2)
B =
0 0
0 0
>> C=ones(1,4)
C =
1 1 1 1
>> D=rand(3,3)%均匀分布随机数
D =
0.8530 0.5132 0.2399
0.6221 0.4018 0.1233
0.2510 0.0760 0.1839
>> E=randn(2,2)%正态分布随机数
E =
0.5201 -0.0348
-0.0200 -0.7982

size()与length()

size函数返回一个长度为2的向量,第一个值是传入数组的行数,第二个值是传入数组的列数:

1
2
3
>> size(rand(3,3))
ans =
3 3

length函数返回该数组最长的维度的长度:

1
2
3
4
5
6
>> length(rand(4,3))
ans =
4
>> length(rand(4,10))
and =
10

索引向量

通过位置访问数组元素的过程称为索引

常用函数

画图

stem函数

用法:

1
2
3
4
5
6
stem(Y)
stem(X,Y)
stem(___,'filled')%这里的___既可以是Y也可以是X,Y
stem(___,LineSpec)
stem(___,Name,Value)
stem(ax,___)

第一种用法中,如果Y是向量,则X轴的刻度范围从1到length(Y)

如果Y是矩阵,则stem将根据相同的x值绘制行中的所有元素,并且x轴的刻度范围是从1至Y中的行数

第二种用法会在X指定的值的位置绘制数据序列Y。X和Y输入必须是大小相同的向量或矩阵,或者X是行或列向量而Y是列数为length(X)的矩阵

第三种用法会将小球改成实心

第四种用法指定线型、标记符号和颜色,指定为包含符号的字符向量或字符串。符号可以按任意顺序显示,不需要同时指定所有三个特征。

线型 说明
- 实线
虚线
: 点线
-. 点划线
标记 说明
‘o’ 圆圈
‘+’ 加号
‘*’ 星号
‘.’
‘x’ 叉号
‘_’ 水平线条
‘|’ 垂直线条
‘s’ 方形
‘d’ 菱形
‘^’ 上三角
‘v’ 下三角
‘>’ 右三角
‘<’ 左三角
‘p’ 五角形
‘h’ 六角形
颜色 说明
y 黄色
m 品红
c 青蓝
r 红色
g 绿色
b 蓝色
w 白色
k 黑色

第五种用法改变Name设置的Value

也可以获取窗口句柄后通过属性访问来改变stem的属性值:

属性名 属性值(第一个是默认值)
LineStyle-线型 ‘-‘、’–’、’:’、’-.’、’none’
LineWidth-线条宽度 0.5、其他正值
Color-针状图颜色 [0 0 0]、RGB三元组、十六进制颜色代码、长名称、短名称
Marker-标记符号 上表所列标记值
MarkerSize-标记大小 6、其他正值
MarkerEdgeColor-标记轮廓颜色 ‘auto’、其余如Color
MarkerFaceColor-标记填充颜色 ‘none’、其余如Color

第六种用法指定坐标区(ax),如果未指定坐标区,则stem在当前坐标区中绘图

xlabel函数与ylabel函数

语法:

1
2
3
xlabel(txt)
xlabel(target,txt)
xlabel(___,Name,Value)%___可以是txt也可以是target,txt

第一种用法对当前坐标区添加标签,可以使用字符向量元胞数组的方式来创建多行标签:

1
2
plot((1:10).^2)
xlabel({'Population','(in thousands)'})

image-20211125135447692

也可以使用TeX标记来显示特殊字符,可以通过逗号分隔字符串来实现变量值的包含:

1
2
3
plot((1:10).^2)
year = 2014
xlabel(['Population for Year ',num2str(year)])

第二种用法为指定的目标对象添加标签

第三种用法使用Name-Value对来修改标签外观,也可以获取标签对象本身后通过访问相应属性来修改