桌面简介、工具栏略。
命令行窗口
在一条语句后加";",则执行完毕不会直接显示结果
"..."可以用来续行
!dir命令显示当前文件夹的内容
iskeyword命令查看关键字
exist var可以判断var是否在工作区
常用快捷键:
工作区窗口、编辑器窗口、图形窗口略。
帮助浏览器、help函数、doc函数
在命令行窗口:
doc 可以打开本版本帮助文档
help fun可查看fun简易帮助
doc fun可打开fun的帮助文档
注释
单行:%
多行:块注释运算符%{和%}。%{和%}运算符必须单独显示在帮助文本块前后紧邻的行上。
常数
eps | 浮点相对精度 |
flintmax | 浮点格式的最大连续整数 |
Inf | 创建所有值均为 Inf 的数组 |
intmax | 指定整数类型的最大值 |
intmin | 指定整数类型的最小值 |
NaN | 创建所有值均为 NaN 的数组 |
realmax | 最大的正浮点数 |
realmin | 最小的标准正浮点数 |
i | 虚数单位 |
j | 虚数单位 |
pi | 圆的周长与其直径的比率 |
ans | 最近计算的答案 |
computer | 有关运行 MATLAB 的计算机的信息 |
变量
默认为矩阵、双精度浮点数。
有效名称
有效的变量名称以字母开头,后跟字母、数字或下划线,区分大小写。变量名称的最大长度为namelengthmax命令返回的值(63)。
向量
一行或者一列
1.直接构造法
元素之间用','或者'空格'分隔
>> A = [1 2 3]
A =
1 2 3
2.增量法
[start:step:end]
>> A = [1:3:9]
A =
1 4 7
3.linspace/logspace函数创建
linspace | 生成线性间距向量 |
logspace | 生成对数间距向量 |
矩阵
二维:m行n列
行列式:n行n列
创建矩阵
1.简单方法
行内同向量,行与行之间";"分隔
>> A = [1 2 3;4 5 6]
A =
1 2 3
4 5 6
2.meshgrid函数创建
meshgrid | 二维和三维网格 |
3.特殊矩阵创建
zeros | 创建全零数组 |
ones | 创建全部为 1 的数组 |
eye | 单位矩阵 |
diag | 创建对角矩阵或获取矩阵的对角元素 |
blkdiag | 分块对角矩阵 |
rand | 均匀分布的随机数 |
randn | 正态分布的随机数 |
randperm | 随机置换 |
magic | 幻方矩阵 |
compan | 伴随矩阵 |
gallery | 测试矩阵 |
hadamard | Hadamard 矩阵 |
hankel | Hankel 矩阵 |
hilb | Hilbert 矩阵 |
invhilb | Hilbert 矩阵的逆矩阵 |
magic | 幻方矩阵 |
pascal | 帕斯卡矩阵 |
rosser | 典型对称特征值测试问题 |
toeplitz | 托普利茨矩阵 |
vander | Vandermonde 矩阵 |
wilkinson | Wilkinson 的特征值测试矩阵 |
聚合矩阵(串联矩阵)
>> A = zeros(1,4);
>> B = ones(1,4);
>> C = [A B] %水平
C =
0 0 0 0 1 1 1 1
>> C = [A;B] %竖直
C =
0 0 0 0
1 1 1 1
要串联两个矩阵,它们的大小必须兼容。也就是说,水平串联矩阵时,它们的行数必须相同。垂直串联矩阵时,它们的列数必须相同。
特殊函数:
cat | 串联数组。 |
horzcat | 水平串联数组 |
vertcat | 垂直串联数组 |
repelem | 重复数组元素副本 |
repmat | 重复数组副本 |
blkdiag | 分块对角矩阵 |
组合不同类型的数据
用一个高精度的矩阵和一个低精度的矩阵构造新矩阵时,新矩阵是低精度的。
>> x = [int8(4.5) int16(-2.8) pi 45/6];
>> class(x)
ans =
'int8'
>> x = ['a' 'b' 'c' 55 66 99];
>> class(x)
ans =
'char'
空数组
MATLAB 中的空数组是指至少有一个维度的长度等于零的数组。空数组可用于以编程方式表示“无”的概念。
使用isempty函数检查。
>> A = [];
>> isempty(A)
ans =
logical
1
>> A = [1 2 3];
>> ad = find(A<0)
ad =
空的 1×0 double 行向量
描述矩阵
length | 最大数组维度的长度 |
size | 数组大小 |
ndims | 数组维度数目 |
numel | 数组元素的数目 |
isscalar | 确定输入是否为标量 |
issorted | 确定数组是否已排序 |
issortedrows | 确定矩阵或表的行是否已排序 |
isvector | 确定输入是否为向量 |
ismatrix | 确定输入是否为矩阵 |
isrow | 确定输入是否为行向量 |
iscolumn | 确定输入是否为列向量 |
isempty | 确定数组是否为空 |
排序/翻转/转置/重塑
sort | 对数组元素排序 |
sortrows | 对矩阵行或表行进行排序 |
flip | 翻转元素顺序 |
fliplr | 将数组从左向右翻转 |
flipud | 将数组从上向下翻转 |
rot90 | 将数组旋转 90 度 |
transpose | 转置向量或矩阵 |
ctranspose | 复共轭转置 |
permute | 置换数组维度 |
ipermute | 逆置换数组维度。 |
circshift | 循环平移数组 |
shiftdim | 移动数组维度 |
reshape | 重构数组 |
squeeze | 删除长度为 1 的维度 |
获取元素
1.使用编号索引
2.线性索引
访问数组元素的另一种方法是只使用单个索引,而不管数组的大小或维度如何。此方法称为线性索引。
按列编号。
>> A=[1 2 3;4 5 6;7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> A(:)
ans =
1
4
7
2
5
8
3
6
9
3.使用冒号
4.使用end关键字
end | 终止代码块或指示最大数组索引 |
多维数组
1.用索引生成多维数组
2.使用MATLAB函数创建
3.使用cat函数
数据类型
format | 设置命令行窗口输出显示格式 |
>> pi
ans =
3.1416
>> format long
>> pi
ans =
3.141592653589793
>> format short
>> pi
ans =
3.1416
字符串
创建字符串
单引号'创建字符数组
双引号"创建字符串
>> ch = 'Hello,World!'
ch =
'Hello,World!'
>> str = "Hello,World!"
str =
"Hello,World!"
>> whos
Name Size Bytes Class Attributes
ch 1x12 24 char
str 1x1 166 string
string | 字符串数组 |
strings | 创建不包含字符的字符串数组 |
char | 字符数组 |
blanks | 创建空白字符数组 |
newline | 创建换行符 |
cellstr | 转换为字符向量元胞数组 |
比较字符串
关系运算符==,!=,<,>,<=,>=
strcmp | 比较字符串 |
strcmpi | 比较字符串(不区分大小写) |
strncmp | 比较字符串的前 n 个字符(区分大小写) |
strncmpi | 比较字符串的前 n 个字符(不区分大小写) |
聚合字符串
[ ]
join | 合并字符串 |
strcat | 水平串联字符串 |
append | 合并字符串 |
sprintf | 将数据格式化为字符串或字符向量 |
compose | 将数据格式化为多个字符串 |
搜索和替换
strfind | 在其他字符串中查找字符串 |
contains | 确定字符串中是否有模式 |
replace | 查找并替换一个或多个子字符串 |
replaceBetween | 替换起点和终点之间的子字符串 |
strrep | 查找并替换子字符串 |
strtok | 所选的字符串部分 |
count | 计算字符串中模式的出现次数 |
endsWith | 确定字符串是否以模式结尾 |
startsWith | 确定字符串是否以模式开头 |
sscanf | 从字符串读取格式化数据 |
确定类型和属性
ischar | 确定输入是否为字符数组 |
iscellstr | 确定输入是否为字符向量元胞数组 |
isstring | 确定输入是否为字符串数组 |
isStringScalar | 确定输入是否为包含一个元素的字符串数组 |
strlength | 字符串长度 |
isstrprop | 确定输入字符串中的哪些字符属于指定类别 |
isletter | 确定哪些字符为字母 |
isspace | 确定哪些字符是空白字符 |
编辑字符串
erase | 删除字符串内的子字符串 |
eraseBetween | 删除起点和终点之间的子字符串 |
extractAfter | 提取指定位置后的子字符串 |
extractBefore | 提取指定位置前的子字符串 |
extractBetween | 提取起点和终点之间的子字符串 |
insertAfter | 在指定的子字符串后插入字符串 |
insertBefore | 在指定的子字符串前插入字符串 |
pad | 为字符串添加前导或尾随字符 |
strip | 删除字符串中的前导和尾随字符 |
lower | 将字符串转换为小写 |
upper | 将字符串转换为大写 |
reverse | 反转字符串中的字符顺序 |
deblank | 删除字符串末尾的尾随空白 |
strtrim | 从字符串中删除前导和尾随空白 |
strjust | 对齐字符串 |
日期和时间数组
创建日期和时间数组
提取和拆分
转换类型更改显示
确定类型、时区偏移量,移动日期或计算日期差
测量和探查代码
timeit | 测量运行函数所需的时间 |
tic | 启动秒表计时器 |
toc | 从秒表读取已用时间 |
cputime | 已用的 CPU 时间 |
profile | 探查函数的执行时间 |
bench | MATLAB 基准 |