声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 13849|回复: 39

[编程技巧] Matlab中一些常用的命令(转)

[复制链接]
发表于 2007-8-2 14:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
转————Matlab中一些常用的命令

感觉很多确实还蛮有用的,共享一下!

一、常用对象操作:除了一般windows窗口的常用功能键外。
1、!dir 可以查看当前工作目录的文件。   !dir& 可以在dos状态下查看。
2、who  可以查看当前工作空间变量名,    whos 可以查看变量名细节。
3、功能键:
功能键             快捷键           说明
方向上键           Ctrl+P          返回前一行输入
方向下键           Ctrl+N          返回下一行输入
方向左键           Ctrl+B          光标向后移一个字符
方向右键           Ctrl+F          光标向前移一个字符
Ctrl+方向右键      Ctrl+R          光标向右移一个字符
Ctrl+方向左键      Ctrl+L          光标向左移一个字符
home              Ctrl+A          光标移到行首
End               Ctrl+E          光标移到行尾
Esc               Ctrl+U          清除一行
Del               Ctrl+D          清除光标所在的字符
Backspace         Ctrl+H          删除光标前一个字符               
                  Ctrl+K          删除到行尾         
                  Ctrl+C          中断正在执行的命令
4、clc可以命令窗口显示的内容,但并不清除工作空间。

二、函数及运算
1、运算符:
+:加,  -:减,  *:乘,  /: 除, \:左除  ^:  幂,‘:复数的共轭转置, ():制定运算顺序。
2、常用函数表:

sin( )   正弦(变量为弧度)   
Cot( )   余切(变量为弧度)
sind( )  正弦(变量为度数)  
Cotd( )  余切(变量为度数)
asin( )  反正弦(返回弧度)     
acot( )  反余切(返回弧度)   
Asind( ) 反正弦(返回度数)   
acotd( ) 反余切(返回度数)   
cos( )   余弦(变量为弧度)     
exp( )   指数     
cosd( )  余弦(变量为度数)   
log( )   对数   
acos( )  余正弦(返回弧度)   
log10( ) 以10为底对数
acosd( ) 余正弦(返回度数)     
sqrt( )  开方      
tan( )   正切(变量为弧度)      
realsqrt( ) 返回非负根
tand( )  正切(变量为度数)        
abs( )   取绝对值   
atan( )  反正切(返回弧度)     
angle( ) 返回复数的相位角
atand( ) 反正切(返回度数)        
mod(x,y) 返回x/y的余数   
sum(  )  向量元素求和
3、其余函数可以用help elfun和help specfun命令获得。
4、常用常数的值:
pi    3.1415926…….         
realmin        最小浮点数,2^-1022
i     虚数单位              
realmax        最大浮点数,(2-eps)2^1022
j     虚数单位           
Inf    无限值
eps        浮点相对经度=2^-52           
NaN   空值
三、数组和矩阵:
1、构造数组的方法:增量发和linspace(first,last,num)first和last为起始和终止数,num为需要的数组元素个数。
2、构造矩阵的方法:可以直接用[ ]来输入数组,也可以用以下提供的函数来生成矩阵。
ones( )   创建一个所有元素都为1的矩阵,其中可以制定维数,1,2….个变量
zeros()   创建一个所有元素都为0的矩阵
eye()     创建对角元素为1,其他元素为0的矩阵
diag()    根据向量创建对角矩阵,即以向量的元素为对角元素
magic()   创建魔方矩阵
rand()    创建随机矩阵,服从均匀分布
randn()   创建随机矩阵,服从正态分布
randperm()         创建随机行向量
horcat             C=[A,B],水平聚合矩阵,还可以用cat(1,A,B)
vercat             C=[A;B],垂直聚合矩阵, 还可以用cat(2,A,B)
repmat(M,v,h)      将矩阵M在垂直方向上聚合v次,在水平方向上聚合h次
blkdiag(A,B)     以A,和B为块创建块对角矩阵
length             返回矩阵最长维的的长度
ndims              返回维数
numel              返回矩阵元素个数
size               返回每一维的长度,[rows,cols]=size(A)
reshape            重塑矩阵,reshape(A,2,6),将A变为2×6的矩阵,按列排列。
rot90              旋转矩阵90度,逆时针方向
fliplr             沿垂轴翻转矩阵
flipud             沿水平轴翻转矩阵
transpose          沿主对角线翻转矩阵
ctranspose         转置矩阵,也可用A’或A.’,这仅当矩阵为复数矩阵时才有区别
inv                矩阵的逆
det                矩阵的行列式值
trace              矩阵对角元素的和
norm               矩阵或矢量的范数,norm(a,1),norm(a,Inf)…….
normest            估计矩阵的最大范数矢量
chol               矩阵的cholesky分解
cholinc            不完全cholesky分解
lu                 LU分解
luinc              不完全LU分解
qr                 正交分解
kron(A,B)        A为m×n,B为p×q,则生成mp×nq的矩阵,A的每一个元素都会乘上B,并占据p×q大小的空间
rank               求出矩阵的刺
pinv               求伪逆矩阵
A^p                对A进行操作
A.^P               对A中的每一个元素进行操作
四、数值计算
1、线性方程组求解
(1)AX=B的解可以用X=A\B求。XA=B的解可以用X=A/B求。如果A是m×n的矩阵,当m=n时可以找到唯一解,m<n,不定解,解中至多有m个非零元素。如果m>n,超定系统,至少找到一组解。如果A是奇异的,且AX=B有解,可以用X=pinv(A)×B返回最小二乘解
(2)AX=b,  A=L×U,[L,U]=lu(A),  X=U\(L\b),即用LU分解求解。
(3)QR(正交)分解是将一矩阵表示为一正交矩阵和一上三角矩阵之积,A=Q×R[Q,R]=chol(A),  X=Q\(U\b)
(4)cholesky分解类似。
2、特征值
D=eig(A)返回A的所有特征值组成的矩阵。[V,D]=eig(A),还返回特征向量矩阵。
3、A=U×S×UT,[U,S]=schur(A).其中S的对角线元素为A的特征值。
4、多项式Matlab里面的多项式是以向量来表示的,其具体操作函数如下:
conv           多项式的乘法
deconv         多项式的除法,【a,b】=deconv(s),返回商和余数
poly           求多项式的系数(由已知根求多项式的系数)
polyeig        求多项式的特征值
Polyfit(x,y,n)        多项式的曲线拟合,x,y为被拟合的向量,n为拟合多项式阶数。
polyder        求多项式的一阶导数,polyder(a,b)返回ab的导数
[a,b]=polyder(a,b)返回a/b的导数。
polyint        多项式的积分
polyval        求多项式的值
polyvalm       以矩阵为变量求多项式的值
residue        部分分式展开式
roots          求多项式的根(返回所有根组成的向量)
注:用ploy(A)求出矩阵的特征多项式,然后再求其根,即为矩阵的特征值。
5、插值常用的插值函数如下:
griddata       数据网格化合曲面拟合
Griddata3      三维数据网格化合超曲面拟合
interp1        一维插值(yi=interp1(x,y,xi,’method’)Method=nearest/linear/spline/pchip/cubic
Interp2        二维插值zi=interp1(x,y,z,xi,yi’method’),bilinear
Interp3        三维插值
interpft       用快速傅立叶变换进行一维插值,help fft。
mkpp           使用分段多项式
spline         三次样条插值
pchip          分段hermit插值
6、函数最值的求解
fminbnd(‘f’,x1,x2,optiset(,))求f在x1和x2之间的最小值。Optiset选项可以有‘Display’+‘iter’/’off’/’final’,分别表示显示计算过程/不显示/只显示最后结果。fminsearch求多元函数的最小值。fzero(‘f’,x1)求一元函数的零点。X1为起始点。同样可以用上面的选项。
五、图像绘制:
1、基本绘图函数
plot            绘制二维线性图形和两个坐标轴
plot3           绘制三维线性图形和两个坐标轴
fplot           在制定区间绘制某函数的图像。fplot(‘f’,区域,线型,颜色)
loglog          绘制对数图形及两个坐标轴(两个坐标都为对数坐标)semilogx        绘制半对数坐标图形
semilogy        绘制半对数坐标图形
2、线型:   颜色           线型
        y   黄色       .  圆点线           v       向下箭头
        g   绿色       -.   组合           >    向右箭头
        b   蓝色       +    点为加号形      <      向左箭头
        m   红紫色     o    空心圆形        p      五角星形
        c   蓝紫色     *    星号           h        六角星形
        w   白色       .    实心小点       hold on   添加图形
        r   红色       x   叉号形状        grid on  添加网格
        k   黑色       s   方形             -    实线      
        d   菱形       --   虚线           ^ 向上箭头     
3、可以用subplot(3,3,1)表示将绘图区域分为三行三列,目前使用第一区域。此时如要画不同的图形在一个窗口里,需要hold on。

[ 本帖最后由 octopussheng 于 2007-8-2 15:05 编辑 ]

评分

1

查看全部评分

回复
分享到:

使用道具 举报

发表于 2007-8-2 16:18 | 显示全部楼层
谢谢分享了,不过数学运算的指令我用的不是很多。比如求6的5次方、以3为底81的对数等!看help都没明白过来:@L
 楼主| 发表于 2007-8-2 16:25 | 显示全部楼层
求6的5次方的话,直接用6^5就可以啦
^符号后面的数值可以随便改的!

以3为底的对数,这个就没做过了,呵呵
发表于 2007-9-12 08:55 | 显示全部楼层
好东西!但是要想把每个命令都用活还是很困难的!
发表于 2007-9-12 10:44 | 显示全部楼层

回复 #2 花如月 的帖子

log(81)/log(3)啊

评分

1

查看全部评分

发表于 2007-9-14 09:58 | 显示全部楼层
谢谢 不错的总结
发表于 2007-10-2 14:12 | 显示全部楼层
好东西,谢谢分享
发表于 2007-11-2 11:07 | 显示全部楼层
谢谢分享!
发表于 2007-11-3 09:13 | 显示全部楼层
谢谢分享!
发表于 2007-11-3 12:26 | 显示全部楼层

自相关矩阵

很好的帖子,谢谢分享,不知求 自相关矩阵的 有没有呢.
发表于 2008-4-7 10:06 | 显示全部楼层
每个命令都掌握是不现实的,掌握自己能用的就行了,别贪哦!
发表于 2008-4-7 11:46 | 显示全部楼层
总结的不错,谢谢!!
发表于 2008-4-7 16:06 | 显示全部楼层
有没有实际应用的例子
发表于 2008-4-7 17:15 | 显示全部楼层
恩,好贴
发表于 2008-4-7 17:40 | 显示全部楼层
谢谢了,很好的参考
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-18 12:34 , Processed in 0.064153 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表