MATLAB基础(一)分类:MATLAB2011-06-1019:315989人阅读评论(0)收藏举报matlabplot数据分析图形distancecommandmatlab中常用的command窗口命令上下键――切换到之前、之后的命令,可以重复按多次来达到你想要的命令clc――清除命令窗口显示的语句,此命令并不清空当前工作区的变量,仅仅是把屏幕上显示出来的语句清除掉clear――这个才是清空当前工作区的变量命令,常用语句clearall来完成clf清除图形窗中显示内容Commandhistorywindows历史命令窗口记录所有运行过的命令。当退出MATLAB或运行clc命令时,命令窗口将会被清空,但历史命令窗口仍然会保存所有运行过的命令。1.编辑菜单可以清空该窗口中的命令。Edit-clearcommandhistory2.双击历史命令窗口中的命令行就可以把该命令调回命令窗口运行。3.单击并拖拽命令代码到命令窗口也可运行历史命令Workplace工作区记录命令窗口中已经运行过变量。ans是matlab中默认的结果变量.每次matlab进行运算后,结果都要储存在指定的变量中.如果你只是输入表达式,却不指定把表达式的运算结果储存在哪个变量里面,那么matlab就自动地将结果储存在ans变量中.直到下一次不带指定存储变量的运算结束前,ans中所储存的值不变.float是单精度浮点数,它的范围可以取到-3.40292347E+38到+3.40292347E+38之间double是双精度浮点,它的范围可以取到-1.79769313486231570E+308到+1.79769313486231570E+308之间单精度浮点变量与双精度浮点变量在内存的占用上是不同的.一般float是4个字节,而double是8个字节Matlab变量命名规则变量名必须以字母开始,区分大小写,最长变量名为63个字符,可以用namelengthmax来保证变量名中允许使用的字符仅包括:字母,数字和下划线。可以用isvarname来核实变量名的有效性。与其它计算机语言类似,数字1表示true,数字0表示falseIsvarnametime;MATLAB中保留的关键字不能作为变量名。用户可以使用命令iskeyword查看系统预定义的关键字MATLAB允许重新指定内置函数名作为变量名。sin=4但这样做是很危险的,因为函数内置sin就不能再被使用了。可以输入下述命令将sin恢复到函数功能clearsinMATLAB中可以用which来检查一个变量是否为内置函数WhichsinMATLAB中标量的运算运算算术语法MATLAB语法加a+ba+b减a-ba-b乘a×ba*b除a÷ba/b指数aba^bLinspace和logspace等差数列用linspace来定义,确定数组中初始元素、最终元素和步数。Eg:a=linspace(1,10,3)等比数列用logspace来定义,需要输入三个值:前两个分别作为10的指数,最后一个是数组中元素的个数。Eg:b=logspace(1,3,3)简单的矩阵运算矩阵和标量进行运算:可以使用算术运算a=[123]b=a+5c=a*5矩阵运算中的乘、除、平方相乘.*;相除:./;幂运算:.^a=[123];b=[456];c=[789]a.*bb./ac.^aMATLAB的矩阵运算能力适合进行重复运算。例如:假设需要把多个角度值转换成弧度值。首先输入矩阵的值,角度值分别为10,15,70,90degrees=[10,15,70,90]若将其转换成弧度,则需要乘以π/180Radians=degrees*pi/180或degrees.*pi/180注:在matlab中,π值用内置的浮点数pi表示。因为π是一个无理数,它不能用一个浮点数精确表示。所以matlab用一个近似的常数pi来表示。在三角函数中sin(pi)的值为0,但matlab却返回一个很小的值1.2246e-016就是这个原因。数值显示-科学计数法一般情况下,十进制数可以表示所有数值,但太大或太小的数值难以用基本的十进制数表示。Eg:阿弗加德罗常数=602200000000000000000000科学记数法表示为:6.022×1023在matlab中,科学记数法是在十进制小数部分与指数部分之间放置字母eEg:Avogadro’s_constant=6.022e23注:一般来说,科学记数法采用10的幂来表示,但很多人经常把这种命名方法与数学上的自然数e相混淆,数学上e=2.7183。在matlab中e的指数用exp函数表示,eg:exp(3)=e3数值显示-显示格式在MATLAB里有多种显示格式,无论选择哪一种,MATLAB都使用双精神浮点数进行计算。双精度浮点数有16位十进制有效数字,改变显示方式不会改变计算结果的精确度。也就是说无论用哪种显示格式,进行运算时使用双精度浮点数。除非调用特殊的函数,否则matlab不区分整数和浮点数。Matlab命令显示实例formatshort4位有效数字formatlong14位有效数字formatshorte4位有效数字科学记数法formatlonge14位有效数字科学记数法formatbank仅显示实际值2位有效数字formatshorteng4位有效数字的工程记数法formatlongeng14位有效数字的工程记数法format+只显示+和-号formatrat分数形式formatshortgMatlab自动选择最佳显示格式formatlonggMatlab自动选择最佳显示格式常用数学函数abs(x)求x的绝对值sqrt(x)求x的平方根Nthroot(x,n)求x的n次方实数根,函数的输出结果不能是复数sign(x)如果x大于0输出1;如果如果x等于0输出0;如果如果x小于0输出-1rem(x,y)求x/y的余数Exp(x)计算ex,其中e是自然对数的底,数值约等于2.7183Log(x)计算ln(x),它是x的自然对数(底为e)Log10(x)计算lg(x),x的常用对数(底为10)Log2(x)以2为底的对数,其它数值为底的对数运算需要间接求得。Matlab未提供通用的对数运算函数取整函数round(x)对x四舍五入round(8.6)ans=9fix(x)对x取整,舍弃小数点后的数值fix(8.6)ans=8floor(x)对x负向取整floor(-8.6)ans=-8ceil(x)对x正向取整ceil(-8.6)ans=-8离散数学中的函数factor(x)对x进行因式分解gcd(x,y)找出x和y的最大公因数lcm找出x和y的最小公倍数rats(x)用分数表示xfactorial(x)计算x的阶乘,如6!=6×5×4×3×2×1nchoosek(n,k)计算n中选k的组合数。如10中选3的可能组合数为120primes(x)提出小于x的素数isprime(x)检查x是否为素数,若x是素数,则返回1;否则,返回0三角函数sin(x)X用弧度表示,计算x的正弦值cos(x)X用弧度表示,计算x的余弦值tan(x)X用弧度表示,计算x的正切值asin(x)X的取值在[-1,1]区间内,计算反正弦值,返回值在[-π/2,π/2]区间内sinh(x)X用弧度表示,计算x的双曲正弦值asinh(x)计算x的反双曲正弦值sind(x)X用角的度数表示,计算x的正弦值asind(x)计算反正弦,结果用角的度数表示数据分析函数-最大值和最小值max(x)(1)求出矢量x的最大值。例如x=[153]最大值是5。(2)创建一个包含矩阵x中每列最大值的行矢量。[a,b]=max(x)求矢量x中元素的最大值和最大值的位置,a表示最大值,b表示最大值的位置。若x是矩阵,此函数生成两个行矢量,一个行矢量表示x各列的最大值,另一个行矢量对应最大值元素的位置。max(x,y)矩阵x和y具有相同的行和列,用两个矩阵中相同位置元素的最大值创建一个新的矩阵min(x)(1)求矢量x的最小值(2)创建一个包含矩阵x中每列最小值的行矢量。[a,b]=min(x)求矢量x中元素的最小值和最小值的位置,a表示最小值,b表示最小值的位置。若x是矩阵,此函数生成两个行矢量,一个行矢量表示x各列的最小值,另一个行矢量对应最小值元素的位置。min(x,y)矩阵x和y具有相同的行和列,用两个矩阵中相同位置元素的最小值创建一个新的矩阵数据分析函数-平均值和中间值mean(x)(1)求矢量x的平均值。(2)当x为矩阵时,返回值是含有各列平均值的行矢量。median(x)(1)求矢量x元素的中间值(2)当x为矩阵时,返回值是含有各列中间值的行矢量。mode(x)求数组中出现次数最多的数,即众数。median与modemedian的用法:如果数组有奇数个,中间值就是将数组按大小顺序排列,取中间的那个数作为中值;如果数组有偶数个,那么就去中间那两个数的平均值。mode的用法:求数组中出现次数最多的数;如果数组中的数出现的频率相同,则返回数值最小的数。数据分析函数-求和与乘积sum(x)(1)求矢量x各元素之和。(2)若x是矩阵,返回结果是包含各列元素之和的行矢量。prood(x)(1)求矢量x各元素的乘积。(2)若x是矩阵,返回结果是包含各列元素乘积的行矢量。cumsum(x)(1)求x元素的累加和。(2)若x是矩阵,计算矩阵各列元素的累加和。cumprod(x)(1)求x元素的累积。(2)若x是矩阵,计算矩阵x各列元素的累积。数据分析函数-排序Sort(x)(1)对矢量x按升序排列。(2)若x是矩阵,则按列进行升序排序。Sort(x,’descend’)各列按降序排列。Sortrows(x)以矩阵第一列为标准,升序排列矩阵各行。Sortrows(x,n)以矩阵第n列的数据为标准,按升序排序矩阵各行。若n为负数,则按降序排列,如果没有指定n的值,则以第一列为标准,按升序行排列。数据分析函数-规模函数size(x)求矩阵x的行数和列数。若x为多维数组,则size用来求数组的维数和长度。[a,b]=size(x)确定矩阵x的行数和列数,a表示行数,b表示列数。length(x)确定矩阵的最大长度数据分析函数-标准差和方差std(x)(1)计算矢量x的标准差。但标准差一般只计算大规模数据集。(2)计算矩阵各列数据的标准差。再次强调,标准差仅限于分析大规模数据集。var(x)计算x的方差。但方差一般只计算大规模数据集。标准差是方差的平方根。特殊函数pi数学常数πi虚数j虚数inf无穷大,数据溢出或除数为0时的输出5/0NaN非数,当计算没有被定义时发生Inf/infclock为了增加返回结果可读性,函数clock和fix一起使用fix(clock)date当前日期。该函数与clock类似,不同之处在于返回的日期采用字符串格式。dateeps最接近1的双精度浮点数与1的距离,即Matlab中的最小极限epsMatlab的矩阵运算创建矩阵矩阵合并从矩阵中提取信息矩阵特性的运用冒号的使用冒号运算符常用于定义一个新矩阵或修改原有矩阵。例如利用冒号可以定义一个等差数列。在进行数值计算时,常用冒号从矩阵中提取数据。如果冒号用在代表行或列的序号位置,则表示所有的行或所有的列。M=[12345;23456;34567]提取矩阵第一列的命令为:x=M(:,1)上面的语句可理解为提取第1列的所有行。如果不需要提取整行或整列,冒号可理解为从…行到…行或从…列到…列。y=M(2:3,:)语句的含义可以理解为提取第2行到第3行的所有列Z=M(2:3,4:5)语句的含义为提取第2行到第3行的第4列到第5列数据。如果在矩阵名后直接加上冒号M(:),就会把原矩阵变成一个列矢量事实上,在计算机内部并不是按照二维的形式存储二维矩阵的,而是把矩阵看成是一个长的列表。矩阵中数字的提取如果需要从矩阵中提取数字,则可采用种方法,即用序号标示或用行和列标示Eg:M=[12345;23456;34567]M(8);或M(2,