0向量与任意向量垂直w=[0,1,2,3,4,]。 求他的各种范数。要求计算过程

欢迎光临my blog。。。
Matlab7.0基础部分(一~四章)
13-03-21 21:57:41 / 分类
Matlab7.0基础部分(一~四章)&&叶小强
学习建议:(1)、多动手编写、调试程序
(2)、应用帮助系统
(3)、善于向别人学习
(4)注重知识点的积累
一、初识matlab(Matrix Laboratory&矩阵实验室)
文件(File)、编辑(Edit)、调试(Debug)、桌面(Desktop)、窗口(Window)、帮助(Help)
命令窗口(Command Window)、命令历史窗口(Command History)、工作间管理窗口(Workspace)、当前目录窗口(Current Directory)
&&为运算提示符,表示matlab已经处于准备就绪状态
命令历史窗口:如果用户希望再次调用某个已经执行过的命令,只需要在命令历史窗口中双击该命令就可以了;如果要删除一条或多条命令,只需要选中这些命令,然后单击右键,在弹出的快捷菜单中选择Delete Selection命令就可以了。
工作间管理窗口:变量名(name)、变量值(value),工作间管理窗口就是用来显示当前计算机内存中matlab的变量的名称、数据结构、变量所占的字节数以及数据类型;
Who(不显示变量的详细信息)和whos命令用于查询当前工作空间中的暂存变量,并可以通过clear命令来删除这些变量。
路径搜索命令:cd命令用于显示当前matlab工作所在目录。Path命令、genpath命令、editpath命令。
帮助系统:⑴帮助窗口:①选择主窗口中的&?&按钮;②在matlab7.0命令窗口中运行helpwin、helpdesk或者doc命令。& 左侧部分窗口是帮助向导界面,右侧窗口则是系统的帮助显示界面;& 帮助主题(Contents)、帮助索引(Index)、帮助查询(Search)、联机演示(Demos);⑵命令窗口查询帮助:help函数:help、help+函数名(函数类名)、helpdesk和helpwin;lookfor函数(不知道函数的确切名称时)
二、matlab基础知识
(一)、matlab7.0中常见标号
区分 行;屏蔽中间运行结果的显示;语句之间分隔
区分 列;函数参数分隔;语句之间分隔;显示运行结果
功能较多,常见为选取矩阵的所有行、列;矩阵定义等
( )(括号)
制定运算过程中的优先级
矩阵定义标志等
用于构成单元数组等
小数点;域访问等
&(续行号)
连接语句,将代码分成多行书写;注意:①续行号放在等号后面;②续行号放在变量名中间;这两种情况下不能起到连接语句的作用
字符串标识符
调用操作系统运算
(二)、matlab中的运算法则
Ⅰ、Matlab7.0中基本数值运算符号
1.多项式的运算遵循四则运算法则总结:
⑴括号中的运算级&乘方(^)和开方(sqrt)&指数运算&乘法和除法&加法和减法
⑵优先级相同的运算符号遵循 从左向右 的运算方法
⑶在有多层括号存在的情况下,从括号最里面向外边逐层扩展
Ⅱ、常见编程操作命令
显示或改变工作目录
图形保存命令
清除工作窗
加载指定文件的变量
清除内存变量
整理内存碎片
清除图形窗口
显示搜索目录
日志文件命令
退出matlab
显示当前目录下文件
保存内存变量到指定文件
显示变量或者文字内容
显示文件内容
工作窗信息显示开关
(三)matlab的基本数据类型
⒈matlab常量及其含义
功能与意义
结果输出(answer)
计算机发出&嘟&的一声
浮点数相对误差(eps=2.2204e-16)
无穷大(infinit)
不定值,不如0/0
复数单位(i=sqrt(-1))
函数输入参数个数
函数输出参数个数
可变函数的输入参数个数
可变函数的输出参数个数
最小正浮点数
最大正浮点数
最大正整数
⒉变量:matlab会根据用户对变量所赋的值自行判断以确定变量的类型
⑴语法规范:
①&&&& 长度规范:变量名长度不可以超过63位。若超过,系统会自动忽略超过的字符,并重新赋值
②&&&& 区分大小写
③&&&& 变量名必须以字母开头,由字母、数字、下划线组成;不允许出现标点符号或者特殊符号等
⑵内存变量的管理:当选中变量后,右键单击选中&&&&&& ①Delete就能删除变量
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&②Open则进入变量编辑器&&具体元素
与内存管理相关的常用命令clear、who、whos等
3.字符串(char array)&&matlab自带符号运算工具箱(Symbolic toolbox)
⑴语法规则:①通过单引号&&括起来
&&&&&&&&&&& ②每个字符(包括空格)都是字符数组的一个元素
&&&&&&&&&&& ③字符串的命名规则必须遵循变量的命名规则
⑵注意:如果原来有特定意义的符号(如函数),被定义为字符串后,系统不再认为它是函数,只是当字符串处理。
⑶通过size命令查看字符串长度,格式:size(字符串名)
⑷字符串与字符数组:本质上是等价的,表达形式略有不同
①&&&& 通过char函数生成字符数组:char(&T&,&h&,&i&,&s&,&&,&i&,&s&,)&&this is
②&&&& 通过double函数将字符串转换为 数值 代码
③&&&& 通过cellstr函数将字符数组转换为字符串
⒋字符串操作函数命令
字符串函数命令
字符串函数命令
进行字符串 连接
字符串检测
垂直 进行字符串连接
iscellchar
字符串单元阵检测
字符串比较
比较字符串的前n个字符
在其他字符串中查找此字符串
十六进制转换成双精度
证明字符数组
十六进制转换成十进制
查找匹配的字符串
十进制转换成十六进制
以其他字符串代替此字符串
二进制转换成十进制
寻找字符串中的记号
十进制转换成二进制
将字符串转换成大写
B底字符串转换成十进制
将字符串转换成小写
十进制转换成B底字符串
生成空字符串
strings函数帮助
移去空字符串
5.向量与矩阵
Ⅰ向量与向量的运算
⑴n维=n个实数=矩阵行数
⑵向量生成法:①直接输入法a=[1,2,3,4,5]
&&&&&&&&&&&&& ②冒号生成法:元素呈等差数列;格式:向量名=[首元素数值:步长:尾元素限值];其中[]可以省略;
&&&&&&&&&&&&& ③线性等分法:格式:linespace(首元素限值,尾元素限值,向量维数)
⑶向量与向量的加减:+,-;向量需同维数;
⑷向量与数的加减:运算结果为数与向量的每个元素进行加减;
⑸向量与数的乘法:*
⑹向量与数的除法:①向量/数②数./向量
⑺向量与向量的点积:dot(向量1,向量2);两个向量必须维数相同;向量点积的结果必定是一个数值
⑻向量与向量的叉积:cross(向量1,向量2);matlab中向量的维数必须为3
⑼向量与向量的混合积:dot(a,cross(b,c));先叉乘后点积;eg:a1x(a2&a3)等价于dot(a1,cross(a2,a3));几何意义:以向量为棱的平行六面体的体积;
Ⅱ矩阵与矩阵的运算
⑴矩阵生成法:①直接输入法②利用M文件生成
⑵矩阵的加减法:两个矩阵维数相同
⑶矩阵的乘法:矩阵A的列数与矩阵B的维数相等
⑷矩阵的除法:左除(\)和右除(/)(A\B等效于A的逆左乘B矩阵,而B/A等价于A逆右乘B
⑸矩阵的乘方:A^x,其中A为方阵,x为标量;前提条件:矩阵A的列数与矩阵B的维数相等。如果只是二次方,只要符合这个约束条件就可以了。如果x&2,则矩阵必须是一个n&n的矩阵;
⑹矩阵的开方:如果矩阵满足XX=A,X=sqrtm(A);但X必须是一个nxn的矩阵
⑺矩阵的点运算:点运算符:&.*&,&./&,&.\&,&.^&;两矩阵的点运算是指它们的对应元素进行相关运算,要求两矩阵维数相同;
向量:普通向量,矩阵向量,数组向量;
一般的矩阵(向量)运算时就直接用 *(^)。两(矩阵)向量 的对应位置相乘(求幂) 那就用 .*(.^)。
?⒍matlab的文件管理(文件数据格式:⑴二进制文件(图形文件及文字处理程序等都属于二进制文件。)⑵文本文件(可以用任何文字处理程序阅读的简单文本文件。)
⑴文件的打开与关闭:①fopen函数:格式:fid=fopen(文件名(字符串形式),打开方式)
打开方式:①&r&表示对打开的文件读数据(read)
&&& &&&&&&②&w&,write
&&&&&&&&& ③&a&表示在打开的文件末尾添加数据
fid&0则说明打开成功;
fclose函数用于关闭文件,格式:sta=fclose(fid),若关闭成功,sta=0;否则,sta=-1;如果需要关闭所有打开的文件,则用sta=fclose(&all&);
注意:打开或关闭的文件必须是matlab软件的路径搜索范围之内;
⑵文件的读写操作
①&&&& 二进制文件的读/写:fread函数和fwrite函数
fread函数格式:[A,COUNT]=fread(fid,size,precision);(A用于存放读取的数据,COUNT返回所读取的数据元素个数,fid为文件句柄(一个句柄就是你给一个文件,设备,(socket)或管道的一个名字, 以便帮助你记住你正处理的名字, 并隐藏某些缓存等的复杂性。),precision代表读取数据的类型,size为可选项,若不选用则读取整个文件的内容,若选用它的值如下:Ⅰ、N表示读取N个元素到一个列向量
& &&&&&&&&&&Ⅱ、Inf表示读取整个文件
&&&&&&&&&&& Ⅲ、[M,N]表示读数据到MxN的矩阵中,数据按列存放;
fwrite函数格式:COUNT=fwrite=(fid,A,precision)(字符含义和fread函数相同)
②&&&& 文本文件的读/写:fscanf函数和fprintf函数
Ⅰ、fscanf函数格式:[A,COUNT]=fscanf(fid,format,size)(format用于控制读取的数据格式,由%加上格式符组成;其他字符含义同上)
Ⅱ、fprintf函数格式:COUNT=fprintf(fid,format,A);
⑶数据文件的定位:fseek和ftell函数
①&&&& fseek函数格式:status=fseek(fid,offset,origin)(fid为文件句柄,offset表示位置指针相对移动的字节数,origin表示位置指针移动的参照位置。若定位成功,status=0;否则,status=-1)
Ⅰ.offset: ㈠offset&0,表示向文件尾方向移动;
㈡offset=0,不改变文件的位置;
㈢offset&0,向文件头方向移动;
Ⅱ.origin: ㈠origin=&bof&或者-1,文件头为参考位置
&&&&&&&& ㈡origin=&cof&或者0,则选取当前指针为参考位置
&&&&&&&& ㈢origin=&eof&或者1,文件尾为参考位置
②&&&& ftell函数格式:position=ftell(fid)
⒎matlab路径搜索:
⑴通过路径位置菜单来扩展搜索路径:File|S
①&&&& Add Folder(忽略子目录) ②(Add with Subfolders(包含子目录)
②&&&& 搜索路径对话框英文意思
⑵path命令扩展搜索路径:格式:path(path,&e:\myfiles&);
⑶addpath命令:①addpath e:\myfiles &end(末尾位置)
&&&&&&&&&&&&&&& ②addpath e:\myfiles &begin(首位)
⑷editpath命令和pathtool命令
⒏matlab应用:
注意点:1.M文件的应用:如何创建?答:File|new|script(脚本)(R2011b版本)
2.gui设计信息框:msgbox(&信息警告!请注意检查!&,&提示框&,&warn&)
3.rand()随机矩阵,rank()矩阵的秩
三、matlab数值运算
三㈠矩阵运算:
Ⅰ矩阵的函数运算:
⑴特征值函数:①E=eig(A)(全部特征值)
&&&&&&&&&&&&& ②[V,D]=eig(A)求解矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成V的列向量
&&&&&&&&&&&&& ★③[V,D]=eig(A,&nobalance&):直接求矩阵A的特征值和特征向量
eigs:迭代法
⑵、奇异值函数(求解矩阵的奇异值):svd(A)、svds(A);
Ⅱ矩阵的条件数运算与特征值的条件数:
㈠、矩阵的条件数运算:
⑴cond函数:cond(A)将会返回关于矩阵A的2范数的条件数;cond(A,n)则返回矩阵A的n范数的条件数;n=1,2,3&;
⑵condest函数:矩阵A的1范数的条件数的估计值
⑶rcond函数:当矩阵A出现&病态&时,rcond(A)则会接近0;当矩阵A呈现&良态&时。rcond(A)会接近1;
㈡、矩阵特征值条件数:格式:⑴、condeig(A)
&&&&&&&&&&&&&&&&&&&&&&&&&&& ⑵、[V,D,s]=condeig(A)(V是特征向量组成的矩阵,它的列向量是特征向量;D的对角元素是对应的特征值;s是对应的特征值条件数;
Ⅲ矩阵的范数:norm函数和normest函数
⑴、norm函数格式:cond(A,n);n可取1,2,inf(无穷大)或fro(Frobenius范数)
⑵、normest(A)只能计算矩阵的2范数的估计值;
Ⅳ矩阵的秩和迹:rank()函数(秩)和trace()函数(迹)
Ⅴ特殊的矩阵函数:⑴nall()函数求解矩阵的零空间矩阵;⑵orth()函数求解矩阵的一组正交基;⑶伪逆函数:pinv(a):矩阵的伪逆函数可以在求解严重&病态&系数矩阵时避免伪解的产生;(inv()不行时)
Ⅵ矩阵函数列表:函数的调用通用格式:funm(A(大写),&funname&)(A为输入矩阵变量,funname为调用的函数名)比如:函数funm(A,&sqrt)等价于sqrt(a);
反双曲余切函数
双曲正弦函数
反正弦函数
自然对数函数ln(x)
反双曲正弦函数
10为底对数函数
2为底对数函数
双曲余弦函数
以2为底的幂函数
反余弦函数
平方根函数
反双曲余弦函数
求不小于变量的最小2指数
双曲正切函数
反正切函数
复共轭函数
四象限反向正切函数
复矩阵函数
反双曲正切函数
复矩阵实部
打开相角函数
双曲正割函数
实阵判断函数
反正割函数
调整数为共轭对
反双曲正割函数
朝0方向舍入
朝负方向舍入
双曲余割函数
朝正方向舍入
反余割函数
四舍五入函数
反双曲余割函数
带符号求余函数
无符号求余函数
双曲余切函数
反余切函数
⑵Matlab特殊函数表
完全椭圆积分
第一类贝塞尔函数
第二类贝塞尔函数
补充的误差函数
第三类贝塞尔函数
比例补充误差函数
改进的第一类贝塞尔函数
反误差函数
改进的第二类贝塞尔函数
幂积分函数
不完全的Beta函数
不完全Gamma函数
Beta函数对数
Gamma函数的读数
Jacobi椭圆函数
勤劳让德函数
⑶矩阵的分解:三角分解(LU分解)、正交分解(OR)、特征值分解(eig分解)、奇异值分解(svd)和Chollesky分解等
①&&&& 三角分解:lu函数:格式:㈠、[L,U]=lu(A):产生一个上三角矩阵U和一个下三角矩阵L,使得A=LxU,A可以不为方阵;
&&&&&&&&&&&&&&&&&&&&&&&&&& ㈡、[L,U,P]=lu(A):产生一个单位下三角矩阵L,一个上三角矩阵U和交换矩阵P,并且PxX=LxU;
②&&&& 正交分解:qr函数:格式:㈠、[Q,R]=qr(A):产生一个与矩阵维数相同的上三角矩阵R和一个正交矩阵Q(如果:AA'=E(E为单位矩阵,A'表示&矩阵A的转置矩阵&。)或A&A=E,则n阶实矩阵 A称为正交矩阵),使得A=Q*R;
&&&&&&&&&&&&&&&&&&&&&&&&&&& ㈡、[Q,R,E]=qr(A):产生一个交换矩阵E,一个上三角矩阵R和正交矩阵Q,且A*E=Q*R
&&&&&&&&&&&&&&&&&&&&&&&&&&& ㈢[Q,R]=qr(A,0):对于矩阵A进行有选择的正交分解。当矩阵A为mxn并且m&n时,则只会产生具有前n列的正交矩阵。
&&&&&&&&&&&&&&&&&&&&&&&&&&& ㈣R=qr(A):只产生矩阵R,并且满足R=chol(A&xA).
③&&&& 特征值分解:eig函数:格式:㈠、[V,D]=eig(A):此函数得到矩阵A的特征值对角矩阵D以及其列为对应的特征值的向量矩阵V,并且AxV=VxD。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ㈡、[V,D]=eig(A,&nobalance&):此形式为关闭平衡算法的求解方法。平衡算法在某些特定问题的求解上可以得到更高的精确。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ㈢、[V,D]=eig(A,B):对矩阵A和B进行广义的特征值分解,并且满足关系式AxV=BxVxD;
④&&&& Chol分解:当矩阵A(nxn)对称正定时,必定存在唯一的对角元素为正的上三角矩阵R,使得A=RxR&;
Chol()函数
⑤&&&& 奇异值分解:svd函数:格式:㈠、[U,S,V]=svd(A):这个命令将产生一个与矩阵A维数相同的对角矩阵S、正交矩阵U和正交矩阵V,并且A=U*S*V&;
㈡、[U,S,V]=svd(A,0):A为MxN矩阵,当M&N时,生成的矩阵U只有前N列元素被计算出来,且矩阵S为NxM矩阵;
Ⅶ、特殊矩阵的生成
㈠、空矩阵、零矩阵和全1矩阵:
⑴、空矩阵:[ ];应用于矩阵的缩维;
①&&&& 矩阵拆分符号&:&
A(:,j):表示取矩阵A的第j列全部元素;
A(i,:):表示取A矩阵第i行的全部元素;
A(i,j):表示取A矩阵第i行、第j列的元素;
a(:,[2,5])=[ ]:表示去除原有矩阵的第2、5列矩阵元素;
⑵零矩阵:zeros函数:①A=zeros(M,N)(A为生成的零矩阵,M和N分别生成矩阵的行和列;)
②&&&& 如果存在一个确定的矩阵B,用户需要生成一个与B矩阵维数相同的矩阵,可以用A=zeros(size(B))来实现;
③&&&& 生成一个N阶方阵,则用命令A=zeros(N)
⑶对角矩阵:diag函数:格式:①、A=diag(V,K):V为某个向量,K为向量V偏离主对角线的列数;K=0时表示V为主对角线;K&0时表示在主对角线上方;K&0表示在主对角线的下方;
&&&&&&&&&&&&&&&&&&&&&&&&&& ②、A=diag(V)等价于A=diag(V,0);
⑷随机矩阵:rand函数和randn函数
①&&&& rand(N):生成NxN阶的随机矩阵,元素值在(0.0,1.0)之间
②&&&& rand(M,N):生成MxN阶的随机矩阵,元素值在(0.0,1.0)之间
③&&&& randn(N):生成NxN阶的随机矩阵,元素值服从正态分布N(0,1)
④&&&& randn(M,N):生成MxN阶的随机矩阵,元素值服从正态分布N(0,1)
⑸范德蒙矩阵:vander()函数,其中A(i,j)=v(i)n-j
⑹魔术矩阵(是一个方阵,每一行、每一列、以及每条对角线的元素之和都相同):magic()函数
⑺Hilbert矩阵和反Hilbert矩阵:
①&&&& hilb(N):生成一个N阶Hilbert矩阵
②&&&& invhilb(N):生成一个N阶反Hilbert矩阵
Ⅴ特殊矩阵生成函数表
函数名称、符号
函数功能描述
函数名称、符号
函数功能描述
生成空矩阵
生成零矩阵
生成单位矩阵
生成上/下三角矩阵
生成对角矩阵
生成小的测试矩阵
生成Hadamard矩阵
生成Hankel矩阵
生成Hilbert矩阵
生成反Hilbert矩阵
生成魔术矩阵
生成n阶的Pascal矩阵
生成服从0~1分布的随机矩阵
生成服从正态分布的随机矩阵
典型的对称矩阵特征值的问题测试
生成Toeplitz矩阵
生成范德蒙矩阵
生成Wilkinson矩阵
生成多项式的伴随矩阵
ones(size(T))这句话是说: 以T的长度为矩阵大小(只有一行)设置全一矩阵 也就是[1,1,1,1,1,........1]
Ⅷ特殊矩阵操作
㈠&&&& 、矩阵的变维:&:&法(两个矩阵0和reshape函数(一个矩阵):
⑴、&:&法:
①A(:,j)表示取A矩阵的第j列全部元素
&②A(i,:)表示取A矩阵第i行的全部元素
③A(i,j)表示取A矩阵第i行,第j列全部元素
④A(i:i+m,:)表示取A矩阵第i~i+m行的全部元素
⑤A(:,k:k+m)表示取A矩阵第k~k+m列全部元素
⑥A(i:i+m,k:k+m)表示取第i~i+m行内,并在第k~k+m列中的所有元素;
⑵、reshape函数:
①&&&& reshape(A,M,N):将矩阵A中所有元素分配到一个MxN的新矩阵中
②&&&& reshape(A,M,N,P,&):这个命令返回一个由矩阵A中所有元素构成的MxNxP&多维矩阵
㈡、矩阵的变向:rot90、flipud、fliplr、flipdim函数
⑴、rot90(A):将矩阵A逆时针旋转90&
⑵、rot90(A,K):将矩阵A逆时针旋转90&xK(K=&1,&2&)
⑶、flipud(A):将矩阵A进行上下翻转
⑷、fliplr(A):将矩阵A左右翻转
⑸、flipdim(A,dim):将矩阵A的dim维翻转(eg:flipdim(A,2))(当dim=1时,矩阵进行对行翻转;当dim&2时,列之间翻转;
㈢、矩阵的抽取(方阵):⒈对角元素抽取diag函数(研究对象是矩阵还是向量)和⒉上三角矩阵与下三角矩阵的抽取:格式:
⒈⑴、diag(A,k):抽取矩阵A的第k条对角线上的元素向量;
①&&&& 当k=0时:抽取主对角线上的元素
②&&&& 当k>0时:抽取对角线上方的第k条对角线上的元素
③&&&& 当k&0时:抽取对角线下方的第k条对角线上的元素
⑵、diag(A):抽取主对角线上的元素向量
⑶、diag(v,k):将向量v设置为矩阵的第k条对角线元素
⑷、diag(v):将向量v设置为矩阵的主对角线元素
&&&&&& ⒉⑴tril(A):提取矩阵A的主下三角部分
&&&&&&&& ⑵tril(A,k):提取矩阵A的第k条对角线下面的部分,包含了第k条对角线;k 的涵义和diag一样;
&&&&&&&& ⑶triu(A):提取矩阵A的主上三角部分
&&&&&&&& ⑷ triu(A,k): 提取矩阵A的第k条对角线上面的部分,包含了第k条对角线;k 的涵义和diag一样;
&&& ㈣、矩阵的扩展
三㈡matlab中的数组
㈠、数组的生成:构造方法和矩阵一样(直接输入法,M文件法,冒号生成法,线性等分法等)
㈡、数组的基本运算(对象都是数组中每一个元素):
⒈四则运算:①加法和减法与矩阵完全一致
②乘法(相同维数)、除法运算符号:&.*&,&./&,&.\&;
⒉数组与常数间的运算:①+:如果在运算符号前加了点好,则需要将常数写在前面;
&&&&&&&&& &&&&&&&&&&&&②&.*&,&./&:数组中所有元素分别与此常数相乘或相除;(3.*b,b.*3,b./2,2./b)
&⒊数组的幂运算:&.^&
&⒋数组的指数运算(exp())、对数运算(log())、开方运算(sqrt())
㈢数组与矩阵的区别:矩阵运算是对向量的一种操作,而数组的运算则是对数组中每一个元素,即&数&的操作。
㈣数组的其他操作:1.寻址:①A(n)(其中n为数组元素的下标)
&&&&&&&&&&&&&&&&&&&&&&&&& ②A(m:n):其中m表示需要访问第一个元素的下标,n表示需要访问的最后一个元素的下标;(多个元素且连续)
&&&&&&&&&&&&&&&&&&&&&&&&& ③A([m,n,p,&]):多个不连续的元素:其中m,n,p&为需要访问元素的下标
&&&&&&&&&&&&&&&&&&&&&&&& &④A(n:end):其中n表示需要访问的第一个元素;
&&&&&&&&&&&&&&&&&& ⒉排序:sort()函数:⑴sort(A):将数组A中的所有元素按升序排列。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ⑵Y=sort(A,dim,mode):dim选择用于排列的维数;mode决定了排序的方式:ascend按升序排列,descend按降序排列;(字符串)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ⑶abs(A):A的数据类型为复数时,按各元素的模排列;
三(三)matlab7.x中的字符串
㈠、字符串的生成:1.&&;
2.由两个字符串拼接:格式:Y=[A,B];(其中A,B,Y都是字符串变量)
&&&&&&&&&&&&&&&&& 3.字符串每行必须有相同数目的列数;
㈡、字符串的操作:1.读取:数组的一些操作(寻址等)
&&&&&&&&&&&&&&&&& 2.显示:disp(str)用于隐藏变量名
&&&&&&&&&&&&&&&&& 3.变换:⑴字符串的ASCII码操作:abs(str);
&&&&&&&&&&&&&&&&&&&& &&&&&⑵char函数:①S=char(A):将包含正数的数组A(ASCII码的前127个数码)转换成字符数组;
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ?②当C是一个字符型单元数组时,S=char(C)命令将C中的每一个单元换成字符型数组的对应行。也可以通过cellstr函数实现它们之间的逆变换。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ③S=char(T1,T2,T3,&.):生成字符串矩阵。其中T1,T2,T3。。。都为字符串,且字符个数可以不相同。
&⑶matlab常见的字符串操作
链接字符串
垂直链接字符串
比较字符串的大小
比较字符串的前n个字符
在其他字符串中寻找该字符串
证明字符数组
查找可能匹配的字符串
用其他字符串代替该串
查找字符串中的记号
生成空的字符串
删除字符串内的空格
字符串检验
字符串的单元检验
String函数的帮助
&&&&&&&&&&&&&&&&&&&&&&& ⑷字符串的执行:eval函数:①eval(S)&:用于执行某一个字符串命令
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ②eval(S1,S2)&:用于执行某一个字符串S1的命令。如果成功,则返回。如果失败,执行S2;
㈢字符串的运算:
⒈判断字符串相等:strcmp函数和strncmp函数(用于字符串和字符串数组)
①&&&& strcmp函数:1或0;
②&&&& strncmp函数:如表,1或0;(eg&:strncmp(str1,str2,8)&:比较str1与str2前8个元素是否一样;
2.字符运算比较:
Matlab中的运算符号
小于或等于
大于或等于
结果:1或0;(用对应的ASCII码比较)
⒊字符串中的字符分类:空白字符、字母字符和其他类型的字符
isspace(str)&函数和isletter(str)函数:结果1或0
⒋字符串的查找和替换:findstr函数、strfind函数和strrep函数;
⑴findstr函数:k=findstr(S1,S2):字符串S1,S2位置可以调换;
⑵strfind函数:k=strfind(text,pattern)&:在text中找pattern;注意长度问题;
⑶strrep函数:k=strrep(S1,S2,S3)&:把字符串S1中的S2都换成S3;(注意str1的遗漏)
⒌字符串与数值的转换
常见的字符串转换函数:
将十六进制字符转换成十进制整数
将十进制整数转换成十六进制字符串
将二进制字符转换成十进制整数
将十进制整数转换成二进制字符串
将B底字符串转换成十进制整数
将十六进制整数转换成双精度
改写字符串为大写
改写字符串为小写
将格式化文本写到文件或显示在屏幕上
用格式控制方式将数字转换为字符串
用格式控制方式,将字符串转换成数字
将ASCII码转换成字符串
将数字转换成字符串
将整数转换成字符串
注意:matlab中,系统最高支持16位的精度;
⑴num2str函数:格式:①T=num2str(A)&:矩阵A转换成一个字符串T(默认4位精度)
&&&&&&&&&&&&&&&&&&&& ②T=num2str(A,N)&: 矩阵A转换成一个字符串T(精度N位小数)
&&&&&&&&&&&&&&&&&&&& ③T=num2str(A,format)&:将矩阵A转换成format格式的字符串
⑵int2str函数:格式:S=int2str(A):将矩阵A中的元素取整之后转换成字符串矩阵S;
⑶str2num函数:格式:str2num()
⑷str2double函数:格式:①str2double(S):字符串矩阵S中的所有元素必须为ASCII码中的数字字符;
&&&&&&&&&&&&&&&&&&&&&&& ②X=str2double(C):?单元型字符矩阵C
6.数组与字符串的转换:mat2str()函数
三(四)matlab7.x多项式
㈠、多项式生成:直接输入法、特征多项式输入法和根创建法
⒈直接输入法:poly2sym()函数
?特征多项式输入法:(1)poly(A): ①A为一个NxN矩阵
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ②A为一个向量
?由多项式的根逆推多项式:root(),poly(root)
㈡多项式运算
⒈求值:polyval函数(数组)和polyvalm函数(矩阵)
⑴Y=polyval(P,A):计算以向量P为系数的多项式在点X处的值
?(2)polyval(P,X,[ ],MU)
⑶Y=polyvalm(P,X):以P为系数的多项式在方阵X中的值;
⒉求解多项式的根:即求解多项式为0的值:roots()函数;(注意从高阶向低阶)
3.多项式的四则运算:
⑴.加减法:与数组加减法一样,阶数不同时补&0&;
⑵乘法:conv函数:格式w=conv(u,v)
⑶除法:deconv函数:格式:[q,r]=deconv[u,v];(q为商,r为余数多项式)(u除以v)
⑷求导:polyder函数:格式:①k=polyder(p):
&&&&&&&&&&&&&&&&&&&&&&&&&& ②k=polyder(a,b):a与b乘积的导数;
&&&&&&&&&&&&&&&&&&&&&&&&&& ③[q,d]=polyder(b,a):返回多项式a除以b的商的导数;
⑸积分:polyint函数:格式:①polyint(p,k):p为多项式,k为常数项
&&&&&&&&&&&&&&&&&&&&&&&&& ②polyint(p):常数项为0
三(五)、matlab关系运算和逻辑运算:
㈠关系运算符详见运算符号表
㈡逻辑运算符
Xor(异或)
四、matlab中的符号运算
四(二)、符号对象的生成
㈠、创建符号对象:1.命名规则:①由英文、数字和下划线组成
&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ②以英文字母开头
&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ③字符长度不大于31个
&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ④区分字母的大小写
2.sym函数和syms函数定义符号变量:⑴ sym针对的是每一个变量或者整个表达式;格式:sym()
⑵syms针对的是一次创建任意多个符号变量;格式:syms var1 var2 var3&
&&&&&&&&&&&&&&&&& ⒊syms var1 var2 var3&&,flag
&&&&&&&&&&&&&&&&&& ⑴flag用于设定对转换结果格式的设定:①被转换对象为数值对象:d&最接近的十进制浮点精确表示;e&在数值计算中,带估计误差的有理表示;f&十六进制浮点表示;r&为默认设置时,最接近有理的表示形式;
&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&②被转换对象为字符串:positive&限定A为正的实型符号变量;real&限定A为实型符号变量;unreal&限定A为非实型的符号变量;
&&&&&&&&&&&&&&&&& ⒋符号运算和数值运算的区别:数值运算是将结果转换成双精度的数值,而符号运算是对变量进行相应的符号处理;
&&&&&&&&&&&&&&&&&& ⒌class函数:查看数据类型:格式:str=class(& &)
&&&&&&&&&&&&&&&&&& ⒍符号矩阵:元素为符号对象的矩阵。⑴sym函数直接输入法⑵数值矩阵转换法
㈡、符号表达式的化简:collect、expand、horner、factor、simplify和simple函数
⒈collect函数(合并同类项):⑴、R=collect(S):相同次幂的项进行合并;S可以是表达式或者是符号矩阵;
⑵、R=collect(S,v):指定对v的相同次幂的项进行合并;
⒉expand函数(多项式展开):R=expand(S):用于多项式、三角函数、指数函数、对数函数;
⒊horner函数:将符号表达式转换成嵌套的形式;格式:R=horner(S):S是符号多项式矩阵;注意:研究对象只能是多项式;
⒋factor函数:将多项式因式分解;格式:factor(A):系数是有理数,分解;若不是,返回A本身;
5.simplify函数:格式:R=simplify(S):对符号表达式化简;
6.simple函数:⑴r=simple(S):执行了这个命令后,得到很多函数化简后的结果,最终得到最简洁的结果;
&&&&&&&&&&&&& ⑵[r, how]=simple(S):只显示出寻找到的最短形式以及找到该形式所用的最简方法;返回值中,r是符号表达式,how是描述化简方法的字符串;
7.符号表达式的替换:subexpr函数和subs函数
⒈subexpr函数:格式:①[y,sigma]=subexpr():sigma用于代替符号表达式或者矩阵中重复出现的字符串;而y用于返回结果;
&&&&&&&&&&&&&&&&&&&&& ② [y,sigma]=subexpr(s,&sigma&):与第一种的区别是第2个参数是字符或字符串;
⒉subs函数:替换表达式中某一个特定的符号;
格式:⑴R=subs(S):替代符号表达式S中的所有符号变量
&& &&&⑵R=subs(S,New):用新的符号变量替代原来符号表达式S中的默认变量;
&&&&& ⑶R=subs(S,old,new):用新的符号变量new来替代原来符号表达式S中的变量
㈢符号与数值之间的转换
⒈digits函数:digits(n):设置有效个数为n的近似解的精度;
⒉vpa函数:格式:①R=vpa(S):默认指定精度
&&&&&&&&&&&&&&&&& ②vpa(S,D):指定精度为D
*⒊numeric函数(效果类似于double函数):格式:n=numeric(S);double函数格式:n=double(sym(S));
㈣符号函数的运算
⒈compose函数:①compose(f,g):返回当f=f(x)和g=g(y)时的复合函数f(g(y));x对应于f,y对应于g;
②compose(f,g,z):返回复合函数,z为自变量;z对应于g
③compose(f,g,x,z):返回复合函数f(g(z)),x为f的独立变量;eg:f=cos(x/t),返回f=cos(g(z)/t);compose(f,g,t,z)返回f=cos(x/g(z));
&&&&&&&&&&&&&& &④compose(f,g,x,y,z):返回复合函数f(g(z));x为f的独立变量,y为g的独立变量;eg:f=cos(x/t),且g=siin(y/t).则compose(f,g,x,y,z)返回cos(sin(z/u)/t);
⒉反函数:finverse函数:格式:①g=finverse(f):f是一个符号函数表达式,f对应于x;使得:g(f(x))=x;
&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ②g=finverse(f,v):与①的区别,自变量为v;
㈤、符号矩阵(得到分数就是分数。。。)
基本代数运算:
①&&&& A+B和A-B命令:Ⅰ、A和B为同型矩阵,各自对应的分量进行加减;Ⅱ、A和B中至少有一个标量时,系统把标量扩大为与另外一个同型的阵列,再按对应的分量进行加减;
②&&&& &②A*B:与矩阵相同;
③&&&& A\B:矩阵左除,X=A\B为符号线性方程组A*X=B的解。需要注意的是,A\B可以近似为inv(A)*B;与矩阵相同
④&&&& A/B:矩阵右除,与矩阵算法相同;
线性代数运算:与矩阵运算相同
(二)符号表达式的积分和微分
⒈符号表达式的微分和求导:diff函数和jacobian函数
⑴diff函数:格式:①diff(x):求解表达式x的一阶导数
&&&&&&&&&&&&&&& ②diff(x,n):求解表达式x的n阶导数(n为自然数)
&&&&&&&&&&&&&&& ③diff(x,&v&)或者diff(s,sym(&y&)),计算x的一阶导数
&&&&&&&&&&&&&&& ④diff(s,&v&,n):计算x的n阶导数
⑤&&&& diff(s,x):对变量x进行求导
⑥&&&& diff(s,y):对变量y进行求导
⑦&&&& diff(s,y(x&),n):对变量y(x&)进行三阶求导;
?⑵jacobian函数(jacobian矩阵):jacobian(f,v)等价于diff(f,v)
?⑶梯度函数gradient:
⒉符号表达式的极限:limit函数
①&&&& limit(f,x,a):求解当x无限趋近于a时,符号表达式f的极限值
②&&&& limit(f,a):求解f的自变量无限趋近于a时的极限值;
③&&&& limit(f):a=0;
④&&&& limit(f,x,a,&right&)或者limit(f,x,a,&left&):求解符号表达式f的左极限(自变量从左边无穷趋近于a)和右极限(自变量从右边无穷趋近于a);
⒊符号表达式的积分:int函数
⑴R=int(S):求解符号表达式S的不定积分;
⑵R=int(S,v):求解符号表达式S以符号标量v为变量的不定积分值;
⑶R=int(S,a,b):求解默认变量从a变到b,符号表达式S的定积分值
⑷R=int(S,a,b,v):符号变量为v,其他同(3);
⒋符号表达式的级数求和:symsum函数
⑴r=symsum(s,a,b):求解符号表达式s中默认变量从a变到b的有限和;
⑵r=symsum(s,v,a,b):变量变为v,其他同(1);
5.泰勒级数:taylor函数
⑴r=taylor(f):求解f在变量等于0处做五阶泰勒级数展开时的表达式;taylor(f,n)
⑵r=taylor(f,n,v): ①求解f的n-1阶迈克劳林级数的展开式;②参数v=0处的泰勒级数展开式
⑶r=taylor(f,n,v,a):求解符号表达式f在v=a处做n-1阶泰勒级数展开;
(eg:t=taylor(g,3,2)等价于在x=2处展开的泰勒级数展开表达式的前三项;r=taylor(f,8)表示符号表达式的八阶泰勒级数展开式;)
?㈢符号积分的变换
⒈Fourier变换(正变换和逆变换):fourier和ifourier函数
①Fw=fourier(ft,t,w)(由ft&Fw):求解时域函数ft的Fourier变换Fw;其中,ft是以t为自变量的时域函数,Fw是以频域w为自变量的频域函数;
②ft=ifourier(Fw,w,t)(Fw&ft):求解频域函数Fw的Fourier反变换;其中,ft是以t为自变量的时域函数,Fw是以频域w为自变量的频域函数;
dirac函数:单位脉冲函数;heaviside函数:单位阶跃函数;
2.Laplace变换:laplace和ilaplace拉普拉斯正变换和反变换;
⑴Fs=laplace(ft,t,s)(ft&Fs):求解时域函数ft的laplace变换Fs;
⑵ft=ilaplace(Fs,s,t)(Fs&ft):求解频域函数Fs的laplace反变换ft;
⒊Z变换:⑴、FZ=ztrans(fn,n,z)(fn&FZ):求解时域函数fn的Z变换FZ;
⑶、fn=iztrans(FZ,z,n)(FZ&fn):求解复频域函数FN的Z反变换fn;
㈥、符号运算在数值分析中的应用
solve函数:求解符号代数方程:格式:①solve(&eq1&,&eq2&,。。。,&eqn&)
&&&& &&&&&&&&&&&&&&&&&&&&&&&&&②solve(&eq1&,&eq2&,。。。,&eqn&,&var1,var2,...varn&)
&&&&&&&&&&&&&&&&&&&&&&&& ③solve(&eq1&,&eq2&,。。。,&eqn&,&var1&,&var2&,...&varn&)
常微分方程的符号求解法:dsolve函数,一般情况下,用大写字母D表示一次微分,D2,D3分别用于表示二次、三次微分运算;D2y相当于d ²y/dt ²;dsolve函数则把d后面的字符作为因变量;
格式:①r=dsolve(&eq1,eq2,...&,&cond1,cond2,...&,&v&):eq1,eq2,...为方程,cond1,cond2,...用于指定方程的边界条件或者初始条件;如果对v没有指定,则系统默认t为自变量;
&&&& ②r=dsolve(&eq1&,&eq2&,...,&cond1&,&cond2&,...,&v&):以v为自变量,但方程数最大为12个;其他同①(方程,边界条件,自变量)
㈦符号函数的二维图形
1.ezplot函数:格式:①ezplot(f):绘制f(x)的图形;x近似范围[-2Π,2Π];
&&&&&&&&&&&&&&&&&& ②ezplot(f,xmin,xmax):绘制f(x)的图形,横坐标范围[xmin,xmax];
③&&&& ezplot(f,[xmin xmax],fig):区别就是有特定的绘图窗口代替系统默认的图形窗口;
2.fplot函数:绘制二维图形
格式:①fplot(fun,lims):fun指定函数名的函数,x轴区间lims=[xmin,xmax];
&&&&& ②fplot(fun,lims,tol):tol用于指定相对误差精度,tol&1,默认值tol=0.002;
&&&&& ③fplot(fun,lims,n):n&1,用于指定以至少n+1个点绘制函数图;一般情况下,n=1,最大步长不小于(xmax-xmin)/n;
④&&&& fplot(fun,lims,&line&):line用于指定线形绘制图形;
⑤&&&& [x,y]=fplot(fun,lims,&):返回用来绘图的点的向量值;
脚印一串串:

我要回帖

更多关于 向量相乘等于0 的文章

 

随机推荐