导图社区 MATLAB
MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。本思维导图是matlab基础知识汇总,包括了基础内容,内容绝对权威来自matlab官网整理,长期更新!
编辑于2019-04-26 13:14:08干货分享!JAVAScript考试知识点分享!内容包含:代码位置、常用输出、数据类型、函数和变量、复合数据类型、常用内置对象、控制语句。长期更新,欢迎使用,一起学习共同进步!
您是否真正了解random库?您是否全面了解了Python?次导图将Python基础知识点依次罗列,从0开始学习,使您真正意义上学会Python,学懂Python!
MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。本思维导图是matlab基础知识汇总,包括了基础内容,内容绝对权威来自matlab官网整理,长期更新!
社区模板帮助中心,点此进入>>
干货分享!JAVAScript考试知识点分享!内容包含:代码位置、常用输出、数据类型、函数和变量、复合数据类型、常用内置对象、控制语句。长期更新,欢迎使用,一起学习共同进步!
您是否真正了解random库?您是否全面了解了Python?次导图将Python基础知识点依次罗列,从0开始学习,使您真正意义上学会Python,学懂Python!
MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。本思维导图是matlab基础知识汇总,包括了基础内容,内容绝对权威来自matlab官网整理,长期更新!
MATLAB
基本
help
帮助
clear all
从当前工作区中删除所有变量,并将它们从系统内存中释放。
clc
清除命令行窗口中的所有文本,让屏幕变得干净
控制流
if, elseif, else
if expression, statements, end 计算表达式并在表达式为 true 时执行一组语句。表达式的结果非空并且仅包含非零元素(逻辑值或实数值)时,该表达式为 true。否则,表达式为 false。
elseif 和 else 模块是可选的。这些语句仅在 if...end 块中前面的表达式为 false 时才会执行。if 块可以包含多个 elseif 块
for
for index = values, statements, end 在循环中将一组语句执行特定次数。values 为下列形式之一:
initVal:endVal - index 变量从 initVal 至 endVal 按 1 递增,重复执行 statements 直到 index 大于 endVal。
initVal:step:endVal - 每次迭代时按值 step 对 index 进行递增,或在 step 是负数时对 index 进行递减。
valArray - 每次迭代时从数组 valArray 的后续列创建列向量 index。例如,在第一次迭代时,index = valArray(:,1)。循环最多执行 n 次,其中 n 是 valArray 的列数,由 numel(valArray(1,:)) 给定。输入 valArray 可属于任何 MATLAB® 数据类型,包括字符向量、元胞数组或结构体。
while
while expression, statements, end 计算一个表达式,并在该表达式为 true 时在一个循环中重复执行一组语句。表达式的结果非空并且仅包含非零元素(逻辑值或实数值)时,该表达式为 true。否则,表达式为 false。
break 终止执行 for 或 while 循环
continue 将控制权传递给 for 或 while 循环的下一迭代
end 终止代码块或指示最大数组索引
return 将控制权返回给调用函数
数据查看
data(::,::)
函数
function
function [y1,...,yN] = myfun(x1,...,xM) 声明名为 myfun 的函数,该函数接受输入 x1,...,xM 并返回输出 y1,...,yN。此声明语句必须是函数的第一个可执行代码行。有效的函数名称以字母字符开头,并且可以包含字母、数字或下划线。
您可以将函数保存在以下位置:
只包含函数定义的函数文件中。文件的名称应与文件中其函数的名称一致。
包含命令和函数定义的脚本文件中。函数必须位于该文件的末尾。脚本文件不能与文件中的函数具有相同的名称。R2016b 或更高版本的脚本中支持函数。
读写excel
xlsread()
num = xlsread(filename,sheet,xlRange) 读取指定的工作表和范围
num = xlsread(filename) 读取名为 filename 的 Microsoft® Excel® 电子表格工作表中的第一张工作表,并在一个矩阵中返回数值数据
xlswrite()
xlswrite(filename,A) 将矩阵 A 写入 Microsoft® Excel® 电子表格工作簿 filename 中的第一张工作表,从单元格 A1 开始写入。
xlswrite(filename,A,sheet) 将数据写入指定的工作表。
xlswrite(filename,A,xlRange) 将数据写入工作簿的第一个工作表中由 xlRange 指定的矩形区域内。使用 Excel 范围语法,例如 'A1:C3'。
xlswrite(filename,A,sheet,xlRange) 将数据写入指定的工作表和范围。
status = xlswrite(___) 使用先前语法中的任何输入参数返回写入操作的状态。当操作成功时,status 为 1。否则,status 为 0。
[status,message] = xlswrite(___) 还在结构体 message 中返回写入操作生成的任何警告或错误消息
计算
diff()
Y = diff(X) 计算沿大小不等于 1 的第一个数组维度的 X 相邻元素之间的差分:
如果 X 是长度为 m 的向量,则 Y = diff(X) 返回长度为 m-1 的向量。Y 的元素是 X 相邻元素之间的差分。
Y = [X(2)-X(1) X(3)-X(2) ... X(m)-X(m-1)]
如果 X 是不为空的非向量 p×m 矩阵,则 Y = diff(X) 返回大小为 (p-1)×m 的矩阵,其元素是 X 的行之间的差分。
Y = [X(2,:)-X(1,:); X(3,:)-X(2,:); ... X(p,:)-X(p-1,:)]
如果 X 是 0×0 的空矩阵,则 Y = diff(X) 返回 0×0 的空矩阵。
Y = diff(X,n) 通过递归应用 diff(X) 运算符 n 次来计算第 n 个差分。在实际操作中,这表示 diff(X,2) 与 diff(diff(X)) 相同。
Y = diff(X,n,dim) 是沿 dim 指定的维计算的第 n 个差分。dim 输入是一个正整数标量。
exp
Y = exp(X) 为数组 X 中的每个元素返回指数 e的x次
sqrt
B = sqrt(X) 返回数组 X 的每个元素的平方根。对于 X 的负元素或复数元素,sqrt(X) 生成复数结果
abs
Y = abs(X) 返回数组 X 中每个元素的绝对值。
如果 X 是复数,则 abs(X) 返回复数幅值
realmin
n = realmin 返回 IEEE® 双精度形式的最小标准正浮点数。
realmin('double') 与不带参数的 realmin 相同。
realmin('single') 返回 IEEE 单精度形式的最小标准正浮点数
块操作
flipud
B = flipud(A) 返回 A,围绕水平轴按上下方向翻转其各行
fliplr
B = fliplr(A) 返回 A,围绕垂直轴按左右方向翻转其各列
rot90
B = rot90(A) 将数组 A 逆时针旋转 90 度。对于多维数组,rot90 在由第一个和第二个维度构成的平面中旋转。
B = rot90(A,k) 将数组 A 按逆时针方向旋转 k*90 度,其中 k 是一个整数
异常处理
Inf
Inf 返回正无穷大的 IEEE® 算术表示。除以零和溢出等操作会生成无穷值,从而导致结果因太大而无法表示为传统的浮点值。
I = Inf(n) 是一个由 Inf 值组成的 n×n 矩阵
NaN
NaN 返回非数字 (NaN) 的 IEEE® 算术表示。这些值由具有未定义的数值结果的运算所生成。
N = NaN(n) 是一个由 NaN 值组成的 n×n 矩阵
try, catch
try statements, catch statements end 执行 try 块中的语句并在 catch 块中捕获产生的错误。此方法允许您改写一组程序语句的默认错误行为。如果 try 块中的任何语句生成错误,程序控制将立即转至包含错误处理语句的 catch 块。
exception 是 MException 对象,您可以用它来标识错误。catch 块将当前异常对象分配给 exception 中的变量。
try 和 catch 块都可包含嵌套的 try/catch 语句
数组
数组创建
[,;,]:
reshapehist
logspace
y = logspace(a,b) 生成一个由在 10^a 和 10^b(10 的 N 次幂)之间的 50 个对数间距点组成的行向量 y。logspace 函数对于创建频率向量特别有用。该函数是 linspace 和“:”运算符的对数等价函数。
y = logspace(a,b,n) 在 10 的幂 10^a 和 10^b(10 的 N 次幂)之间生成 n 个点
diag
D = diag(v) 返回包含主对角线上向量 v 的元素的对角矩阵。
D = diag(v,k) 将向量 v 的元素放置在第 k 条对角线上。k=0 表示主对角线,k>0 位于主对角线上方,k
eye
I = eye 返回标量 1。
I = eye(n) 返回一个主对角线元素为 1 且其他位置元素为 0 的 n×n 单位矩阵。
I = eye(n,m) 返回一个主对角线元素为 1 且其他位置元素为 0 的 n×m 矩
magic
M = magic(n) 返回由 1 到 n2 的整数构成并且总行数和总列数相等的 n×n 矩阵。阶次 n 必须为大于或等于 3 的标量
linspace
y = linspace(x1,x2) 返回包含 x1 和 x2 之间的 100 个等间距点的行向量。
y = linspace(x1,x2,n) 生成 n 个点
randn
X = randn 返回一个从标准正态分布中得到的随机标量。
X = randn(n) 返回由正态分布的随机数组成的 n×n 矩阵
ones
X = ones 返回标量 1。
X = ones(n) 返回一个 n×n 的全 1 矩阵
zeros
X = zeros 返回标量 0。
X = zeros(n) 返回一个 n×n 的全零矩阵
save
save(filename) 将当前工作区中的所有变量保存在 MATLAB® 格式的二进制文件(MAT 文件)filename 中。如果 filename 已存在,save 会覆盖该文件。
save(filename,variables) 仅保存 variables 指定的结构体数组的变量或字段。
save(filename,variables,fmt) 以 fmt 指定的文件格式保存
rand
X = rand 返回一个在区间 (0,1) 内均匀分布的随机数。
X = rand(n) 返回一个 n×n 的随机数矩阵
find
数组查询
k = find(X) 返回一个包含数组 X 中每个非零元素的线性索引的向量。
如果 X 为多维数组,则 find 返回由结果的线性索引组成的列向量。
如果 X 包含非零元素或为空,则 find 返回一个空数组。
如果 X 为向量,则 find 返回方向与 X 相同的向量。
k = find(X,n) 返回与 X 中的非零元素对应的前 n 个索引。
k = find(X,n,direction)(其中 direction 为 'last')查找与 X 中的非零元素对应的最后 n 个索引。direction 的默认值为 'first',即查找与非零元素对应的前 n 个索引
算符运算
+
<
*
/
\
^
,
-
.*
.^
==
~=
>
>=
.,
数组操作
length
L = length(X) 返回 X 中最大数组维度的长度。对于向量,长度仅仅是元素数量。对于具有更多维度的数据,长度为 max(size(X))。空数组的长度为零
size
sz = size(A) 返回一个行向量,其元素包含 A 的相应维度的长度。例如,如果 A 是一个 3×4 矩阵,则 size(A) 返回向量 [3 4]。sz 的长度为 ndims(A)。
如果 A 是表或时间表,则 size(A) 返回由表中的行数和变量数组成的二元素行向量。
szdim = size(A,dim) 返回维度 dim 的长度。
当 A 是矩阵时,[m,n] = size(A) 返回行数和列数
numel
n = numel(A) 返回数组 A 中的元素数目 n 等同于 prod(size(A))
meshgrid
[X,Y] = meshgrid(x,y) 基于向量 x 和 y 中包含的坐标返回二维网格坐标。X 是一个矩阵,每一行是 x 的一个副本;Y 也是一个矩阵,每一列是 y 的一个副本。坐标 X 和 Y 表示的网格有 length(y) 个行和 length(x) 个列。
[X,Y] = meshgrid(x) 与 [X,Y] = meshgrid(x,x) 相同,并返回网格大小为 length(x)×length(x) 的方形网格坐标。
[X,Y,Z] = meshgrid(x,y,z) 返回由向量 x、y 和 z 定义的三维网格坐标。X、Y 和 Z 表示的网格的大小为 length(y)×length(x)×length(z)。
[X,Y,Z] = meshgrid(x) 与 [X,Y,Z] = meshgrid(x,x,x) 相同,并返回网格大小为 length(x)×length(x)×length(x) 的三维网格坐标
gradient
FX = gradient(F) 返回向量 F 的一维数值梯度。输出 FX 对应于 ∂F/∂x,即 x(水平)方向上的差分。点之间的间距假定为 1。
[FX,FY] = gradient(F) 返回矩阵 F 的二维数值梯度的 x 和 y 分量。附加输出 FY 对应于 ∂F/∂y,即 y(垂直)方向上的差分。每个方向上的点之间的间距假定为 1
atan2
P = atan2(Y,X) 返回 Y 和 X 的四象限反正切 (tan-1),该值必须为实数
prod
B = prod(A) 返回 A 的数组元素的乘积。
如果 A 是向量,则 prod(A) 返回元素的乘积。
如果 A 为 0×0 空矩阵,prod(A) 返回 1。
如果 A 为多维数组,则 prod(A) 沿第一个非单一维度运算并返回乘积数组。此维度的大小将减少至 1,而所有其他维度的大小保持不变。
如果 A 为非空矩阵,则 prod(A) 将 A 的各列视为向量,并返回一个包含每列乘积的行向量。
如果输入 A 为 single 类型,则 prod 会计算并将 B 以 single 类型返回。如果为任何其他数值和逻辑数据类型,prod 会计算并将 B 以 double 类型返回。
B = prod(A,'all') 计算 A 的所有元素的乘积
绘图
plot()
plot(X,Y) 创建 Y 中数据对 X 中对应值的二维线图。
如果 X 和 Y 都是向量,则它们的长度必须相同。plot 函数绘制 Y 对 X 的图。
如果 X 和 Y 均为矩阵,则它们的大小必须相同。plot 函数绘制 Y 的列对 X 的列的图。
如果 X 或 Y 中的一个是向量而另一个是矩阵,则矩阵的各维中必须有一维与向量的长度相等。如果矩阵的行数等于向量长度,则 plot 函数绘制矩阵中的每一列对向量的图。如果矩阵的列数等于向量长度,则该函数绘制矩阵中的每一行对向量的图。如果矩阵为方阵,则该函数绘制每一列对向量的图。
如果 X 或 Y 之一为标量,而另一个为标量或向量,则 plot 函数会绘制离散点。但是,要查看这些点,您必须指定标记符号,例如 plot(X,Y,'o')。
plot(X1,Y1,LineSpec1,...,Xn,Yn,LineSpecn) 设置每个线条的线型、标记符号和颜色。您可以混用 X、Y、LineSpec 三元组和 X、Y 对组:例如,plot(X1,Y1,X2,Y2,LineSpec2,X3,Y3)
LineSpec - 线型、标记和颜色
示例: '--or' 是带有圆形标记的红色虚线
线型 说明
- 实线(默认)
-- 虚线
-. 点划线
: 点线
标记 说明
o 圆圈
* 星号
. 点
x 叉号
d 菱形
s 方形
+ 加号
> 右三角
v 下三角
p 五角形
h 六角形
^ 上三角
颜色 说明
y
黄色
c
青蓝色
g
绿色
b
蓝色
k
黑色
w
白色
r
红色
m
品红色
'Color' - 线条颜色
'red' 或 'r' 红色 [1 0 0]
'green' 或 'g' 绿色 [0 1 0]
'blue' 或 'b' 蓝色 [0 0 1]
'yellow' 或 'y' 黄色 [1 1 0]
'magenta' 或 'm' 品红色 [1 0 1]
'cyan' 或 'c' 青蓝色 [0 1 1]
'white' 或 'w' 白色 [1 1 1]
'black' 或 'k' 黑色 [0 0 0]
'none' 无颜色 不适用
'LineStyle' - 线型
'-' 实线
'--' 虚线
':' 点线
'-.' 点划线
'none' 无线条 无线条
'LineWidth' - 线条宽度
'MarkerEdgeColor' - 标记轮廓颜色
'MarkerFaceColor' - 标记填充颜色
pol2cart
[x,y] = pol2cart(theta,rho) 将极坐标数组 theta 和 rho 的对应元素转换为二维笛卡尔坐标或 xy 坐标。
[x,y,z] = pol2cart(theta,rho,z) 将柱坐标数组 theta、rho 和 z 的对应元素转换为三维笛卡尔坐标或 xyz 坐标
subplot
subplot(m,n,p) 将当前图窗划分为 m×n 网格,并在 p 指定的位置创建坐标区。MATLAB® 按行号对子图位置进行编号。第一个子图是第一行的第一列,第二个子图是第一行的第二列
quiver
二维绘图
quiver(x,y,u,v) 在 x 和 y 中每个对应元素对组所指定的坐标处将向量绘制为箭头。矩阵 x、y、u 和 v 必须大小相同并包含对应的位置和速度分量
contour
二维绘图
contour(Z) 创建一个包含矩阵 Z 的等值线的等高线图,其中 Z 包含 x-y 平面上的高度值。MATLAB® 会自动选择要显示的等高线。Z 的行索引和列索引分别是平面中的 x 和 y 坐标
mesh
三维绘图
mesh(X,Y,Z) 使用 Z 确定的颜色绘制线框网格,因此其颜色与曲面高度成比例
meshc
三位绘图
meshc(X,Y,Z) 使用 Z 确定的颜色绘制线框网格并根据该网格绘制等高线图,使颜色与曲面高度成比例
hist
hist(x) 基于向量 x 中的元素创建直方图条形图。x 中的元素有序划分入 x 轴上介于 x 的最小值和最大值间的 10 个等间距 bin 中。hist 将 bin 显示为矩形,这样每个矩形的高度就表示 bin 中的元素数量。
如果输入是多列数组,则 hist 为每列 x 创建直方图并将它们叠加到一个绘图上。
如果输入为 categorical 数据类型,则每个 bin 是一个 x 类别。
hist(x,nbins) 将 x 有序划分入标量 nbins 所指定数量的 bin 中
plot3
plot3(X1,Y1,Z1,...)(其中 X1、Y1、Z1 为向量或矩阵)在三维空间中绘制一个或多个线条,这些线条穿过坐标为 X1、Y1 和 Z1 的元素的点
xlabel
xlabel(___,Name,Value) 使用一个或多个名称-值对组参数修改标签外观。例如,'FontSize',12 将字体大小设置为 12 磅
ylabel
ylabel(___,Name,Value) 使用一个或多个名称-值对组参数修改标签外观。例如,'FontSize',12 将字体大小设置为 12 磅
zlabel
zlabel(___,Name,Value) 使用一个或多个名称-值对组参数修改标签外观。例如,'FontSize',12 将字体大小设置为 12 磅
title
title(___,Name,Value) 使用一个或多个名称-值对组参数修改标题外观。例如,'FontSize',12 将字体大小设置为 12 磅
hold on
hold off
hold on 保留当前坐标区中的绘图,从而使新添加到坐标区中的绘图不会删除现有绘图
xlim
xlim(limits) 设置当前坐标区或图的 x 坐标轴范围。将 limits 指定为 [xmin xmax] 形式的二元素向量,其中 xmax 大于 xmin
ylim
ylim(limits) 设置当前坐标区或图的 y 坐标轴范围。将 limits 指定为 [ymin ymax] 形式的二元素向量,其中 ymax 大于 ymin
figure
打开图像窗口
figure(Name,Value) 使用一个或多个名称-值对组参数修改图窗的属性。例如,figure('Color','white') 将背景色设置为白色