Matlab常用函数
1、算数运算符
符号 | 角色 | 更多信息 |
---|---|---|
+ |
加法 |
plus |
+ |
一元加法 |
uplus |
- |
减法 |
minus |
- |
一元减法 |
uminus |
.* |
按元素乘法 |
times |
* |
矩阵乘法 |
mtimes |
./ |
按元素右除 |
rdivide |
/ |
矩阵右除 |
mrdivide |
.\ |
按元素左除 |
ldivide |
\ |
矩阵左除 (也称为反斜杠) |
mldivide |
.^ |
按元素求幂 |
power |
^ |
矩阵幂 |
mpower |
.' |
转置 |
transpose |
' |
复共轭转置 |
ctranspose |
2、关系运算符
符号 | 角色 | 更多信息 |
---|---|---|
== |
等于 |
eq |
~= |
不等于 |
ne |
> |
大于 |
gt |
>= |
大于或等于 |
ge |
< |
小于 |
lt |
<= |
小于或等于 |
le |
3、逻辑运算符
符号 | 角色 | 更多信息 |
---|---|---|
& |
计算逻辑 AND |
and |
| |
计算逻辑 OR |
or |
&& |
计算逻辑 AND(具有短路功能) |
Short-Circuit AND |
|| |
计算逻辑 OR(具有短路功能) |
Short-Circuit OR |
~ |
计算逻辑 NOT |
not |
4、特殊字符
@ |
名称:at 符号 用法:
描述: 示例 创建命名函数的函数句柄: fhandle = @myfun 创建匿名函数的函数句柄: fhandle = @(x,y) x.^2 + y.^2; 从子类中调用 disp@MySuper(obj) 使用正在构造的对象从子类中调用超类构造函数: obj = obj@MySuper(arg1,arg2,...) 更多信息:
|
. |
名称:句点或点 用法:
描述:句点字符可分隔一个数(例如 示例 小数点: 102.5543 按元素运算: A.*B A.^2 结构体字段访问: myStruct.f1 对象属性设定符: myObj.PropertyName 更多信息
|
... |
名称:三个点或省略号 用法:续行 描述:行末尾的三个或更多个句点表示当前命令延续到下一行。如果行末尾之前存在三个或更多个句点,则 MATLAB 会忽略该行的其余部分而直接延续到下一行。这实际上相当于将当前行上三个句点之后的任何内容作为注释。 注意 MATLAB 将省略号解释为空格字符。因此,多行命令与将省略号替换为空格字符的单行命令等效。 示例 将函数调用延续到下一行: sprintf(['The current value '... 'of %s is %d'],vname,value) 在多行上分解字符向量并将这些行串联在一起: S = ['If three or more periods occur before the '... 'end of a line, then the rest of that line is ' ... 'ignored and MATLAB continues to the next line'] 要将多行命令中的一行注释掉,请在该行的开头使用 y = 1 +... 2 +... % 3 +... 4; 但是,以下代码可正常运行,因为第三行不会在命令中产生间断。 y = 1 +... 2 +... ... 3 +... 4; 更多信息
|
, |
名称:逗号 用法:分隔符 描述:使用逗号可分隔数组中的行元素、数组下标、函数输入和输出参数以及同一行中输入的命令。 示例 分隔行元素以创建数组: A = [12,13; 14,15] 分隔下标: A(1,2) 分隔函数调用中的输入和输出参数: [Y,I] = max(A,[],2) 分隔同一行中的多个命令(显示输出): figure, plot(sin(-pi:0.1:pi)), grid on 更多信息
|
: |
名称:冒号 用法:
描述:使用冒号运算符可创建等间距向量、对数组进行索引以及定义 示例 创建向量: x = 1:10 创建以 3 为单位递增的向量: x = 1:3:19 将矩阵重构为列向量: A(:) 分配新元素而不更改数组的形状: A = rand(3,4); A(:) = 1:12; 对特定维度中某个范围的元素进行索引: A(2:5,3) 对特定维度中的所有元素进行索引: A(:,3)
x = 1; for k = 1:25 x = x + x^2; end 更多信息
|
; |
名称:分号 用法:
描述:使用分号可分隔数组创建命令中的各行,也可禁止代码行的输出显示。 示例 分隔各行以创建数组: A = [12,13; 14,15] 禁止代码输出: Y = max(A); 在单行中分隔多个命令(隐藏输出): A = 12.5; B = 42.7, C = 1.25; B = 42.7000 更多信息
|
( ) |
名称:圆括号 用法:
描述:使用圆括号可指定运算优先级、括住函数输入参数以及对数组进行索引。 示例 运算优先级: (A.*(B./C)) - D 括起函数参数: plot(X,Y,'r*') C = union(A,B) 索引: A(3,:) A(1,2) A(1:5,1) 更多信息
|
[ ] |
名称:方括号 用法:
描述:方括号可以构造和串联数组、创建空矩阵、删除数组元素以及捕获函数返回的值。 示例 构造三元素向量: X = [10 12 -3] 在矩阵底部添加新的一行: A = rand(3); A = [A; 10 20 30] 创建空矩阵: A = [] 删除矩阵列: A(:,1) = [] 从函数捕获三个输出参数: [C,iA,iB] = union(A,B) 更多信息
|
{ } |
名称:花括号 用法:元胞数组赋值和内容 描述:使用花括号可构造元胞数组,也可访问元胞数组中特定元胞的内容。 示例 要构造元胞数组,请将数组的所有元素括在花括号中: C = {[2.6 4.7 3.9], rand(8)*6, 'C. Coolidge'} 通过将所有索引括在花括号中来对特定元胞数组元素进行索引: A = C{4,7,2} 更多信息
|
% |
名称:百分号 用法:
描述:百分号最常用于指示程序主体中不可执行的文本。此文本通常的作用是在代码中加入注释。 某些函数还将百分号解释为转换设定符。 根据创建和运行代码节中的描述,两个百分号 示例 在代码块中添加注释: % The purpose of this loop is to compute % the value of ... 将转换设定符与 sprintf('%s = %d', name, value) 更多信息
|
%{ %} |
名称:百分号加花括号 用法:块注释 描述: 注意 除空白字符之外, 示例 用百分号后跟左花括号或右花括号将多行注释括起来: %{ The purpose of this routine is to compute the value of ... %} 更多信息
|
! |
名称:感叹号 用法:操作系统命令 描述:感叹号位于要从 MATLAB 内部执行的操作系统命令的前面。 在 MATLAB Online™ 中不可用。 示例 感叹号启动 shell 转义函数。此类函数将直接由操作系统执行: !rmdir oldtests 更多信息
|
? |
名称:问号 用法:MATLAB 类的元类 描述:问号可检索特定类名的 示例 检索类 ?inputParser 更多信息
|
'' |
名称:单引号 用法:字符数组构造符号 描述:使用单引号可创建 示例 创建字符向量: chr = 'Hello, world' 更多信息
|
"" |
名称:双引号 用法:字符串构造符号 描述:使用双引号可创建 示例 创建字符串标量: S = "Hello, world" 更多信息
|
N/A |
名称:空格字符 用法:分隔符 描述:使用空格字符可分隔数组构造符号内的行元素,也可分隔函数返回的值。在这些上下文中,空格字符和逗号是等效的。 示例 分隔行元素以创建数组: % These statements are equivalent A = [12 13; 14 15] A = [12,13; 14,15] 分隔函数调用中的输出参数: % These statements are equivalent [Y I] = max(A) [Y,I] = max(A) |
N/A |
名称:换行符 用法:分隔符 描述:使用换行符分隔数组构造语句中的多个行。在这种情况下,换行符和分号是等效的。 示例 在数组创建命令中分隔行: % These statements are equivalent A = [12 13 14 15] A = [12 13; 14 15] |
~ |
名称:波浪号 用法:
描述:使用波浪号可表示逻辑非,也可禁止特定输入或输出参数。 示例 计算矩阵的逻辑 NOT: A = eye(3); ~A 确定 A = [1 -1; 0 1] B = [1 -2; 3 2] A~=B 仅返回 [~,~,iB] = union(A,B) 更多信息
|
= |
名称:等号 用法:赋值 描述:使用等号可为变量赋值。语法 注意
示例 创建矩阵 A = [1 0; -1 0]; B = A; B(1) = 200; |
< & |
名称:左尖括号和 & 符号 用法:指定超类 描述:在类定义中指定一个或多个超类 示例 定义从一个超类派生的类: classdef MyClass < MySuperclass … end 定义从多个超类派生的类: classdef MyClass < Superclass1 & Superclass2 & … … end 更多信息:
|
.? |
名称:点问号 用法:指定名称-值结构体的字段 描述: 使用函数参数验证时,可以将名称-值结构体的字段定义为类的所有可写属性的名称。 示例 将 function f(propArgs) arguments propArgs.?matlab.graphics.primitive.Line end % Function code ... end 更多信息:
|
5、字符串与字符串格式化
|
名称:斜杠和反斜杠 用法:文件或文件夹路径分隔 描述:除了用作数学运算符以外,斜杠和反斜杠字符还可分隔路径或文件夹的元素。在基于 Microsoft® Windows® 的系统上,斜杠和反斜杠具有相同的效果。在基于 The Open Group UNIX® 的系统上,只能使用斜杠。 示例 在 Windows 系统上,您可以使用反斜杠或斜杠: dir([matlabroot '\toolbox\matlab\elmat\shiftdim.m']) dir([matlabroot '/toolbox/matlab/elmat/shiftdim.m'])
在 UNIX 系统上,只能使用正斜杠: dir([matlabroot '/toolbox/matlab/elmat/shiftdim.m'])
|
.. |
名称:二连点 用法:父文件夹 描述:连续的两个点表示当前文件夹的父文件夹。使用此字符可指定相对于当前文件夹的文件夹路径。 示例 要在文件夹树中上移两层进入 cd ..\..\test 更多信息
|
* |
名称:星号 用法:通配符 描述:除了用作矩阵乘法的符号以外,星号 通配符一般用于对多个文件或文件夹执行的文件操作。MATLAB 会精确匹配名称中的所有字符,但通配符 示例 查找名称以 dir('january_*.mat')
|
@ |
名称:at 符号 用法:类文件夹指示符 描述: 示例 表示类文件夹: \@myClass\get.m 更多信息
|
+ |
名称:加 用法:包目录指示符 描述: 示例 包文件夹始终以 +mypack +mypack/pkfcn.m % a package function +mypack/@myClass % class folder in a package 更多信息
|
6、基本函数
函数 | 作用 | 举栗子 |
---|---|---|
clear | 清除工作区中的所有变量 | |
clc | 清除命令行中的所有代码 | |
help 函数名 或 doc 函数名 | 查找函数帮助 | |
syms | 定义符号变量 | syms x y ; |
sym('f') | 定义符号表达式 | sym('x*y^2') |
pi | 圆周率(matlab区分大小写) | π |
vpa(x,k) | x的数值,保留k位有效数字 | x=vpa(sin(1/3), 2) ⇨x=0.33 |
real(x) | 求复数x的实部 | x = real(1+2i) ⇨ x = 1 |
eval() | 字符串转数值 | x = eval('5') ⇨ x = 5 |
sqrt() | 开根号 | x = sqrt(4) ⇨ x = 2 |
exp() | 以自然常数e为底的指数函数 | x = exp(2) ⇨ y = e² |
log() | 以e为底的对数函数 | x = log(exp(1)) ⇨ x = 1 |
log10() | 以10为底的对数函数 | x = log(10) ⇨ x = 1 |
abs() | 取绝对值 | x = abs(-1) ⇨ x = 1 |
mod(m,n) | m对n取余,返回m/n的余数 | x = mod(3,2) ⇨ x = 1 |
7、三角函数
函数 | 作用 | 备注 |
---|---|---|
sin()、cos()、tan()、cot() | 三角函数 | x=sin(deg2rad(30)) ⇨x=0.5 |
rad2deg()、deg2rad() | 弧度转角度、角度转弧度 | x=deg2rad(30) ⇨ x=0.5236 |
asin()、acos()、 atan()、acot() |
反三角函数,结果为弧度值 | x = asin(0.5) ⇨ x = 0.5236 |
asind()、acosd()、atand()、acotd() | 反三角函数,结果为角度值 | x = asind(0.5) ⇨ x = 30.0° |
8、向量矩阵操作
函数 | 作用 | 备注 |
---|---|---|
size(A) | 返回矩阵的行数和列数 | |
size(C,1) / size(C,2) | 返回矩阵的行数 / 列数 | |
length(A) 或 max(size(A)) | 返回长度最大的维度的长度 | |
numel(A) | 返回矩阵元素的总个数 | |
sum(A) | 返回矩阵所有元素的和 | x = sum([1,2]) ⇨ x = 3 |
inv(A) | 返回矩阵A的逆 | |
ndims(A) | 返回矩阵A的维度 | 单个数值、向量和二维矩阵返回值均为2 |
iscolumn(x) / isrow(x) | 判断是否为列向量 / 行向量 | |
isvector() / ismatrix() | 判断是否为向量 / 矩阵 | |
isempty(x) / isscalar() | 判断是否为空向量 /单个数值 | |
dot(a, b) | 向量a点乘b,点积 | |
cross(a, b) | 向量a叉乘b,叉乘 | |
repmat(A,m,n) | 通过将A复制m行n列,返回m*n的矩阵 |
9、解方程
函数 | 作用 | 备注 |
---|---|---|
simplify(f) | 化简公式f | |
collect(f) | 合并同类项 | |
expand(f) | 展开公式 | |
horner(f) | 将乘法嵌套 | 数值计算性能较好 |
factor(f) | 因式分解 | |
pretty(f) | 相对直观地显示公式 | 复杂的公式不行 |
[n,d] = numden(f) | 通分,返回分母n,分子d | 通分前会先自动化简表达式 |
10、画图相关
figure() | 创建画布 |
---|---|
clf() | 清空画布的内容 |
set() | 设置图形对象属性,如画布名字、在屏幕上的位置等 |
plot(X,Y) | 创建 Y 中数据对 X 中对应值的二维线图 |
plot3() | 绘制三维图像 |
xlabel()、ylabel() | 横轴、纵轴标签 |
xlim()、ylim() | 横轴、纵轴范围 |
text() | 标注图线名称 |
title() | 添加图题 |
hold on / hold off | 不刷新画布(在一张画布画多张图) / 刷新画布 |
legend() | 添加图例 |
grid on / grid off | 打开 / 关闭网格线 |
grid minor | 打开最小网格线 |
box on / box off | 打开 / 关闭 右、上边框线 |
save() | 保存工作区变量 |
saveas() / imwrite() | 保存图片 |
11、其他
who:打印当前变量 whos:打印当前变量详细信息 clear:清除当前变量 clc:清除打印区 eye:创建单位矩阵 zeros:创建0矩阵 ones:创建1矩阵 rand:生成0-1的均匀随机分布 randn:生成均值为0方差为1的正态分布 sqrt:开根 sqrt(10)*randn(1,8):噪声功率为10的高斯白噪声
A=B.':求矩阵转置
A=B':求共轭矩阵转置
exp:求每个元素求以e为底的指数函数
conv:求两个向量的卷积
长风破浪会有时,直挂云帆济沧海!
可通过下方链接找到博主
https://www.cnblogs.com/judes/p/10875138.html