MATLAB函数详解与应用

通用指令:

cd 显示或改变工作目录    dir 显示目录下文件   type 显示文件内容    clear 清除内存变量   clf 清除图形窗口

pack 收集内存碎片    clc 清除工作窗  echo 工作窗口信息显示开关     hold 图形保持开关  disp   显示变量或文字内容

path   显示搜索目录   save 保存内存变量到指定文件    load 加载指定文件的变量   quit 退出matlab      ! 调用doc命令

单元型变量常用函数

cell 预分配存储空间生成单元型变量    celldisp显示单元型变量的内容   cellplot 图形显示单元型变量内容

cell2struct 将单元型变量转换为结构型变量   num2cell  将数值数组转变为单元型变量   cellfun 对单元型变量中元素作用的函数    struct 创建结构型变量    

向量的生成:生成向量最直接的方法是在命令窗口中直接输入,格式上的要求是,向量元素需要用“[ ]”括起来,元素之间可以用空格、逗号、或者分号分隔,且用逗号和空格分隔生成的是行向量,用分号分隔生成的是列向量。

冒号表达式:基本形式为x=x0 :step:xn,其中x0,step,xn分别是给定的首元素数值、元素之间的间隔、末元素数值。

线性等分向量的生成:利用Linspace,可以生成线性等分向量,例:y=linspace(x1,x2) 生成100维的行向量,使得y(1)=x1,y(100)=x2,y=linspace(x1,x2,n),生成n维等分行向量

向量点积:点积是指两个向量在其中某一个向量上的投影的乘积,dot(a,b) 返回向量a和b的数量点积,a和b必须同维,或者用sum(a.*b)。

eval执行包含MATLAB表达式/命令的字符串

eval(expression) 输入:expression——包含MATLAB表达式的字符串

例:

>>d='cd';

>>eval(d)

E:\matlab65\work

disp显示文本或数组
disp(X)
显示一个数组的内容,数组的名称不显示。如果X包含一个文本字符串,则显示该文本字符串

d = det(X)
返回方阵X的行列式,如果X是整数矩阵,则结果d也是整数

inv求矩阵的逆矩阵

Y = inv(X)
求方阵X的逆矩阵。如果X是奇异方阵或接近奇异方阵那么输出一个警告信息。
实际上,很少需要用矩阵的逆矩阵。inv函数被频繁滥用当解线性方程A*X = b时。一个方法是用x = inv(A)*b,更好的方法是,无论在执行时间上还是数值精度上,用矩阵除法操作 x = A\b.这是用高斯消元法求解的,没有用到逆矩阵。

LU矩阵分解

矩阵的三角分解有称LU分解,目的是将一个矩阵分解为一个下三角矩阵L和一个上三角矩阵U的乘积,即A=LU。
[L,U] = lu(A) book.iLoveMatlab.cn
U为上三角阵,L为下三角阵或其变换形式,满足LU=X。
[L,U,P] = lu(A)
U为上三角阵,L为下三角阵,P为单位矩阵的行变换矩阵,满足LU=PA.
k

svd命令计算矩阵的奇异值分解。
s = svd(X)
返回由奇异值组成的一个向量s。
[U,S,V] = svd(X)
生成一个与X有相同维数的对角矩阵S,其非负对角元是降序排列的,酉矩阵U和V满足X=U*S*V'。
[U,S,V] = svd(X,0)
生成一个''有效大小''的分解,如果X是m*n的并m>n,则svd仅仅计算U的前n列,S是n*n的。
[U,S,V] = svd(X,'econ')
也生成一个''有效大小''的分解,如果X是m*n的并m>=n,等价于svd(X,0)。如果m<n,仅仅计算V的前m列,S是m*m的。
rank函数求矩阵的秩
k = rank(A)
返回矩阵A中精度大于默认精度max(size(A))*eps(norm(A))的奇异值的个数。
k = rank(A,tol)
返回矩阵A中大于tol的奇异值的个数。

randn产生正态分布的随机数或矩阵的函数 产生均值为0,方差 σ^2 = 1,标准差σ = 1的正态分布的随机数或矩阵的函数
用法:
Y = randn(n)
返回一个n*n的随机项的矩阵。如果n不是个数量,将返回错误信息。
Y = randn(m,n) 或 Y = randn([m n])
返回一个m*n的随机项矩阵。
Y = randn(m,n,p,...) 或 Y = randn([m n p...])
产生随机数组。
Y = randn(size(A))
返回一个和A有同样维数大小的随机数组。
randn
返回一个每次都变化的数量。
s = randn('state')
举例
Example 1. R = randn(3,4) 将生成矩阵
R =
1.1650 0.3516 0.0591 0.8717
0.6268 -0.6965 1.7971 -1.4462
0.0751 1.6961 0.2641 -0.7012
For a histogram of the randn distribution, see hist.

Example 2. 产生一个随机分布的指定均值和方差的矩阵:将randn产生的结果乘以标准差,然后加上期望均值即可。例如,产生均值为0.6,方差为0.1的一个5*5的随机数方式如下:x = .6 + sqrt(0.1) * randn(5)

magic生成幻方

M = magic(n)
生成一个n*n的矩阵,矩阵元素是由整数1到n^2组成的并且任何行任何列的和都相等,阶数n必须是大于等于3的标量。

ones创建元素都为1的数组或矩阵

Y = ones(n) 返回一个元素都为1的n*n矩阵。如果参数n不是一个标量就是报错。

Y = ones(m,n) 或 Y = ones([m n])

返回元素都为1的m*n矩阵,m和n都为标量。

zeros创建元素为零的数组或矩阵
B = zeros(n)

返回一个n*n的矩阵,其元素都为零,如果参数n不是一个标量就会报错。《Simulink与信号处理》
B = zeros(m,n) 或 B = zeros([m n])

返回一个m*n的零矩阵


eye生成单位矩阵

Y = eye(n)
生成n*n的单位阵。
Y = eye(m,n)或Y = eye([m n])
生成m*n的单位阵,其中对角线上为1,其他都为0,m,n大小应该为非负整数,负数被认为是0。
abs求绝对值或者复数的模

real求复数的实部
imag求复数的虚部

rref:求行阶梯形式矩阵

R = rref(A)
用高斯-约旦消元法和行主元法求A的行最简行矩阵R。用默认误差(max(size(A))*eps *norm(A,inf))测试可以忽略不计列的元素。

[R,jb] = rref(A)
同时返回向量jb满足:
r = length(jb)是矩阵A的秩;
x(jb)是线性方程Ax = b的主元变量。
A(:,jb)是A的列向量基。
R(1:r,jb)是r*r的单位矩阵。
[R,jb] = rref(A,tol) 用指定精度tol替代默认的。

A = magic(4), R = rref(A)
A =
16 2 3 13
5 11 10 8
9  7  6 12
4  14 15 1
R =
1 0 0 1
0 1 0 3
0 0 1 -3
0 0 0 0

cov(x)返回协方差矩阵

如果x是一个向量,cov(x)返回x中元素的方差。
如果x是一个矩阵,并且是各行为观测值、各列为变量的矩阵,cov(x)计算x的协方差。diag(cov(X))是包含每列的方差的向量,sqrt(diag(cov(X)))是包含标准差的向量。当X和Y是大小相同的矩阵时,cov(X,Y)等价于cov([X(:) Y(:)])。

A = [-1 1 2 ; -2 3 1 ; 4 0 3],对A每一列求方差:
v = diag(cov(A))'
v =
   10.3333 2.3333 1.0000
比较v和协方差C:
C=cov(A)
C =
     10.3333 -4.1667 3.0000 www.iLoveMatlab.cn
    -4.1667  2.3333 -1.5000
      3.0000 -1.5000 1.0000
对角元素C(i,i)代表A中每一列的方差,非对角元素代表列i和列j的协方差。

M = mean(A)求数组的平均数或者均值

M = mean(A)
返回沿数组中不同维的元素的平均值。
如果A是一个向量,mean(A)返回A中元素的平均值。
如果A是一个矩阵,mean(A)将中的各列视为向量,把矩阵中的每列看成一个向量,返回一个包含每一列所有元素的平均值的行向量。book.iLoveMatlab.cn
如果A是一个多元数组,mean(A)将数组中第一个非单一维的值看成一个向量,返回每个向量的平均值。

M = mean(A,dim)
返回A中沿着标量dim指定的维数上的元素的平均值。对于矩阵,mean(A,2)就是包含每一行的平均值的列向量。

A = [1 2 3; 3 3 6; 4 6 8; 4 7 7];
mean(A)
ans =
      3.0000 4.5000 6.0000

mean(A,2)
ans =
      2.0000
      4.0000  
      6.0000
      6.0000

R = corrcoef(X)计算相关系数
R = corrcoef(X)

返回相关系数矩阵R,对行是观测值、列是变量的矩阵X计算相关系数得到相关系数矩阵R。 《Simulink与信号处理》
阵R=corrcoef(X)与协方差矩阵C=cov(X)有以下关系:

公式



R = corrcoef(x,y)
如果x和y都是列向量,那么其功能和corrcoef([x y])是相同的。
如果x和y不是列向量,corrcoef函数转化他们为列向量,例如,在这种情况下R=corrcoef(x,y)是等价于R=corrcoef([x(:) y(:)])。

find函数:找出矩阵中不为零的元素[r,c,v] = find(X),r向量为行号,c向量为列号,V向量为对应的元素
s = std(X) 计算标准差

s = std(X,flag,dim)
用指定的标量dim沿着数据X的维数来计算标准差,设置flag为0用n-1去标准化X,设置flag为1用n去标准化。

var:计算方差

V = var(X,w,dim)
沿着指定维数dim求X的方差,默认用N-1标准化这时w为0,w为1时用N标准化

附录1 常用命令
附录1.1 管理用命令函数名 功能描述 函数名 功能描述
addpath 增加一条搜索路径 rmpath 删除一条搜索路径
demo 运行Matlab演示程序 type 列出.M文件
doc 装入超文本文档 version 显示Matlab的版本号
help 启动联机帮助 what 列出当前目录下的有关文件
lasterr 显示最后一条信息 whatsnew 显示Matlab的新特性
lookfor 搜索关键词的帮助 which 造出函数与文件所在的目录
path 设置或查询Matlab路径
附录1.2管理变量与工作空间用命令 函数名 功能描述 函数名功能描述
clear 删除内存中的变量与函数 pack 整理工作空间内存
disp 显示矩阵与文本 save 将工作空间中的变量存盘
length 查询向量的维数 size 查询矩阵的维数
load 从文件中装入数据 who,whos 列出工作空间中的变量名
附录1.3文件与操作系统处理命令 函数名 功能描述 函数名 功能描述
cd 改变当前工作目录 edit 编辑.M文件
delete 删除文件 matlabroot 获得Matlab的安装根目录
diary 将Matlab运行命令存盘 tempdir 获得系统的缓存目录
dir 列出当前目录的内容 tempname 获得一个缓存(temp)文件
! 执行操作系统命令
附录1.4窗口控制命令 函数名 功能描述 函数名 功能描述
echo 显示文件中的Matlab中的命令 more 控制命令窗口的输出页面
format 设置输出格式
附录1.5启动与退出命令 函数名 功能描述 函数名 功能描述
matlabrc 启动主程序 quit 退出Matlab环境
startup
Matlab自启动程序
附录2 运算符号与特殊字符附录
2.1运算符号与特殊字符函数名 功能描述 函数名 功能描述
+ 加 ... 续行标志
- 减 , 分行符(该行结果不显示)
* 矩阵乘 ; 分行符(该行结果显示)
.* 向量乘 % 注释标志
^ 矩阵乘方 ! 操作系统命令提示符
.^ 向量乘方 矩阵转置
kron 矩阵kron积 . 向量转置
\ 矩阵左除 = 赋值运算
/ 矩阵右除 == 关系运算之相等
.\ 向量左除 ~= 关系运算之不等
./ 向量右除 < 关系运算之小于
: 向量生成或子阵提取 <= 关系运算之小于等于
() 下标运算或参数定义 > 关系运算之大于
[] 矩阵生成 >= 关系运算之大于等于
{} & 逻辑运算之与
. 结构字段获取符 | 逻辑运算之或
. 点乘运算,常与其他运算符联合使用(如.\) ~ 逻辑运算之非
xor 逻辑运算之异成
附录2.2逻辑函数 函数名 功能描述 函数名 功能描述
all 测试向量中所用元素是否为真 is*(一类函数)
检测向量状态.其中*表示一个确定的函数(isinf)
any 测试向量中是否有真元素 *isa 检测对象是否为某一个类的对象
exist 检验变量或文件是否定义 logical 将数字量转化为逻辑量
find 查找非零元素的下标
附录3 语言结构与调试
附录3.1编程语言 函数名 功能描述 函数名 功能描述
builtin 执行Matlab内建的函数 global 定义全局变量
eval 执行Matlab语句构成的字符串 nargchk 函数输入输出参数个数检验
feval 执行字符串指定的文件 scrīpt Matlab语句及文件信息
function Matlab函数定义关键词
附录3.2控制流程 函数名 功能描述 函数名 功能描述
break 中断循环执行的语句 if 条件转移语句
case 与switch结合实现多路转移 otherwise 多路转移中的缺省执行部分
else 与if一起使用的转移语句 return 返回调用函数
elseif 与if一起使用的转移语句 switch 与case结合实现多路转移
end 结束控制语句块 warning 显示警告信息
error 显示错误信息 while 循环语句
for 循环语句
附录3.3交互输入 函数名 功能描述 函数名 功能描述
input 请求输入 menu 菜单生成
keyboard 启动键盘管理 pause 暂停执行
附录3.4面向对象编程 函数名 功能描述 函数名 功能描述
class 生成对象 isa 判断对象是否属于某一类
double 转换成双精度型 superiorto 建立类的层次关系
inferiorto 建立类的层次关系 unit8 转换成8字节的无符号整数
inline 建立一个内嵌对象
附录3.5调试 函数名 功能描述 函数名 功能描述
dbclear 清除调试断点 dbstatus 列出所有断点情况
dbcont 调试继续执行 dbstep 单步执行
dbdown 改变局部工作空间内存 dbstop 设置调试断点
dbmex 启动对Mex文件的调试 sbtype 列出带命令行标号的.M文件
dbquit 退出调试模式 dbup 改变局部工作空间内容
dbstack 列出函数调用关系
附录4 基本矩阵与矩阵处理
附录4.1基本矩阵 函数名 功能描述 函数名 功能描述
eye 产生单位阵 rand 产生随机分布矩阵
linspace 构造线性分布的向量 randn 产生正态分布矩阵
logspace 构造等对数分布的向量 zeros 产生零矩阵
ones 产生元素全部为1的矩阵 : 产生向量
附录4.2特殊向量与常量 函数名 功能描述 函数名 功能描述
ans 缺省的计算结果变量 non 非数值常量常由0/0或Inf/Inf获得
computer 运行Matlab的机器类型 nargin 函数中参数输入个数
eps 精度容许误差(无穷小) nargout 函数中输出变量个数
flops 浮点运算计数 pi 圆周率
i 复数单元 realmax 最大浮点数值
inf 无穷大 realmin 最小浮点数值
inputname 输入参数名 varargin 函数中输入的可选参数
j 复数单元 varargout 函数中输出的可选参数
附录4.3时间与日期 函数名 功能描述 函数名 功能描述
calender 日历 eomday 计算月末
clock 时钟 etime 所用时间函数
cputime 所用的CPU时间 now 当前日期与时间
date 日期 tic 启动秒表计时器
datenum 日期(数字串格式) toc 读取秒表计时器
datestr 日期(字符串格式) weekday 星期函数
datevoc 日期(年月日分立格式)
附录4.4矩阵处理 函数名 功能描述 函数名 功能描述
cat 向量连接 reshape 改变矩阵行列个数
diag 建立对角矩阵或获取对角向量 rot90 将矩阵旋转90度
fliplr 按左右方向翻转矩阵元素 tril 取矩阵的下三角部分
flipud 按上下方向翻转矩阵元素 triu 取矩阵的上三角部分
repmat 复制并排列矩阵函数
附录5 特殊矩阵 函数名 功能描述 函数名 功能描述
compan 生成伴随矩阵 invhilb 生成逆hilbert矩阵
gallery 生成一些小的测试矩阵 magic 生成magic矩阵
hadamard 生成hadamard矩阵 pascal 生成pascal矩阵
hankel 生成hankel矩阵 toeplitz 生成toeplitz矩阵
hilb 生成hilbert矩阵 wilkinson 生成wilkinson特征值测试矩阵
附录6 数学函数
附录6.1三角函数 函数名 功能描述 函数名 功能描述
sin/asin 正弦/反正弦函数 sec/asec 正割/反正割函数
sinh/asinh 双曲正弦/反双曲正弦函数 sech/asech 双曲正割/反双曲正割函数
cos/acos 余弦/反余弦函数 csc/acsc 余割/反余割函数
cosh/acosh 双曲余弦/反双曲余弦函数 csch/acsch 双曲余割/反双曲余割函数
tan/atan 正切/反正切函数 cot/acot 余切/反余切函数
tanh/atanh 双曲正切/反双曲正切函数 coth/acoth 双曲余切/反双曲余切函数
atan2 四个象限内反正切函数
附录6.2指数函数 函数名 功能描述 函数名 功能描述
exp 指数函数 log10 常用对数函数
log 自然对数函数 sqrt 平方根函数
附录6.3复数函数 函数名 功能描述 函数名 功能描述
abs 绝对值函数 imag 求虚部函数
angle 角相位函数 real 求实部函数
conj 共轭复数函数
附录6.4数值处理 函数名 功能描述 函数名 功能描述
fix 沿零方向取整 round 舍入取整
floor 沿-∞方向取整 rem 求除法的余数
ceil 沿+∞方向取整 sign 符号函数
附录6.5其他特殊数学函数 函数名 功能描述 函数名 功能描述
airy airy函数 erfcx 比例互补误差函数
besselh bessel函数(hankel函数) erfinv 逆误差函数
bessili 改进的第一类bessel函数 expint 指数积分函数
besselk 改进的第二类bessel函数 gamma gamma函数
besselj 第一类bessel函数 gammainc 非完全gamma函数
bessely 第二类bessel函数 gammaln gamma对数函数
beta beta函数 gcd 最大公约数
betainc 非完全的beta函数 lcm 最小公倍数
betaln beta对数函数 log2 分割浮点数
elipj Jacobi椭圆函数 legendre legendre伴随函数
ellipke 完全椭圆积分 pow2 基2标量浮点数
erf 误差函数 rat 有理逼近
erfc 互补误差函数 rats 有理输出

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空