matlab的常用知识点全球某工商大学版

  • 格式:doc
  • 大小:243.00 KB
  • 文档页数:13

Matlab的使用By Cl1.运算1.1.*和.*向量相乘用.*数与向量相乘可用* 也可.*矩阵之间相乘用*如:xn=0.8.^n.*(n>=0 & n<M); % 产生序列x(n)1.2.冒号用法如:x=1:5; 表示x=1 2 3 4 5x=1:2:10; 表示x=1 3 5 7 9B=A(:,2:3);表示截取A矩阵中所有行的2到3列的元素,组成数组B。

1.3.linspace()x=linspace(a,b,n);从a到b按线性分n个点。

(n未写的话默认为100)1.4.取整向后取整:ceil(),如ceil(0.1)=1,ceil(1)=1。

向前取整:floor(),如floor(0.1)=0, floor(1)=1。

1.5.取符号sign(),如sign(x),如果x大于0,返回1;如果x小于0,返回-1;如果为复数,返回x./abs(x)1.6.求模和取余mod(a,b),相当于a模brem(a,b),相当于c语言的a%b1.7.求平方和sum([a1 a2 … an].^2)1.8.逻辑运算&与;|或;~非;xor(a,b)异或1.9.关系操作符等于“==”;不等于“~=”2.矩阵操作2.1.求矩阵大小size()2.2.隔n行取数重新构成矩阵B=A(1:n:end,:)2.3.矩阵合并B=[A A],横向合并;或B=[A;A],纵向合并。

2.4.条件取矩阵中的数据find(),如:r=find(M(:,2)>3.5);%找到第2列的值大于3.5的行Mc=M(r,:); %构成新的矩阵2.5.求平均值mean()M=mean(A),如果A是一个向量,mean(A)返回A中元素的平均值。

如果A是一个矩阵,mean(A)将中的各列视为向量,把矩阵中的每列看成一个向量,返回一个包含每一列所有元素的平均值的行向量。

如果A是一个多元数组,mean(A)将数组中第一个非单一维的值看成一个向量,返回每个向量的平均值。

M = mean(A,dim)返回A中沿着标量dim指定的维数上的元素的平均值。

2.6.求标准差std(x),算出x的标准差。

x可以是一行的matrix或者一个多行matrix矩阵;如果只有一行,那么就是算一行的标准偏差,如果有多行,就是算每一列的标准偏差。

std(x,a)也是x的标准偏差但是a可以=0或者1.如果是0和前面没有区别,如果是1就是最后除以n,而不是n-1.(参考计算标准偏差的公式,一般都用除以n-1的公式。

)std (x, a,b)这里a表示是要用n还是n-1,如果是a是0就是除以n-1,如果是1就是除以n。

b这里是维数,比如说1 2 3 44 5 6 1如果b 是1,就是按照行分,如果b是2就是按照列分;如果是三维的矩阵,b=3就按照第三维来分数据2.7.求最值[max_v,max_index]=max(x)3.RAW数据操作Matlab在读取既有数字又有字符(可以是中文字符)的excel里的数据的时候,可以用:[NUMERIC,TXT,RAW]=xlsread(‘E:\matlab_data\test.xls’, ‘sheet2’, ‘a1:j5’);这里RAW就是包含了数字矩阵NUMERIC和TXT内容的原始数据。

原始数据中的一个元素称为一个cell 3.1.cellcell用大括号定义如:C{A B}访问cell内容如RAW(1,1),返回的是cell类型,而RAW{1,1}则返回cell中的内容修改cell内容可以用RAW{1,1}的形式,不能用RAW(1,1)的形式。

cell的内容可能是数字,也可能是字符串。

3.2.strcmp字符串比较当两个字符串相同时返回1,不同时返回0只需要比较两个字符串的前n个字符时可用strncmp。

它可以用来比较中文字符。

3.3.sort排序sort(X,DIM,MODE)X是向量或矩阵,DIM表示如果是矩阵,按照哪个维度进行排序,1为每列进行排序,2为每行进行排序。

MODE表示排序递增(‘ascend’默认)或递减(‘descend’)。

3.4.sortrows排序sortrows(X,col)col指定按照某一列进行行排序。

当X中既有数字又有字符(即是RAW数据)时,指定排序用的列必须全部是字符,且不能有空格,否则排序出错。

4.求解方程使用solve函数,如:[x,y]=solve(‘x^2+x*y+y=3’, ‘x^2-4*x+3=0’)5.画图5.1.clf清除所有图形5.2.plot5.3.subplot()subplot(line,col,num);line指示子图的行数,col表示子图的列数,num表示第几幅子图。

它用来指定在哪个位置画图,具体画图还需要用plot等函数。

5.4.stem()绘制离散序列图.stem(y)和stem(x,y)分别与plot(x)和plot(x,y)的绘图规则相同,只是stem绘制的是离散序列图(也称为杆状图),序列线端为圆圈。

如:x=…;y=…;stem(x,y,’.’);5.5.axisaxis([xmin xmax ymin ymax])一般用来设置axes的样式,包括坐标轴范围,可读比例等5.6.画多个图figure(1)6.数据存取6.1.csvread读取CSV文件数据使用CSVREAD函数。

第一种:M = csvread('FILENAME') ,直接读取csv文件的数据,并返回给M,这时要求整个csv文件内容全部为用逗号隔开的数字,不能用其他字符。

第二种:M = csvread('FILENAME',R,C) ,读取csv文件中从第R-1行,第C-1列的数据开始的数据,这对带有头文件说明的csv文件(如示波器等采集的文件)的读取是很重要的。

第三种:M = csvread('FILENAME',R,C,RNG),其中 RNG = [R1 C1 R2 C2],读取第R+1行,第C+1列开始,左上角为索引为(R1+1行,C1+1列) ,右下角索引为(R2+1行,C2+1列)的矩阵中的数据。

附注:一:对于空置的单元,CSVREAD对数据自动置零。

二:RNG所指定的矩形数据块中不能有字符三:根据MATLAB R2010a的帮助,CSVREAD在未来版本中将会被取代 ( CSVREAD will be removed in a future release. )。

6.2.csvwrite数据存入CSV文件使用csvwrite函数csvwrite('filename',M)将数组M中的数据保存为文件filename,数据间以逗号分隔。

csvwrite('filename',M,row,col)将数组M中的指定数据保存在文件中,数据由参数 row和col指定,保存row和col右下角的数据。

附注:一:svwrite写入数据时每一行以换行符结束。

二:该函数不返回任何值。

三:该函数只能保留5位有效数字,因此只能在精度要求不高的场合。

精度高的场合可用dlmwrite()函数。

6.3.dlmread读取空格分隔的二进制文件数据dlmread()6.4.dlmwrite写入空格分隔的二进制文件dlmwrite(‘filename’, M)可以把文件后缀名写成txt,例如dlmwrite(‘myfile.txt’, M)dlmwrite(‘myfile.txt’, M, ‘D’)将矩阵M写入一个ASCII格式的文件中,使用分隔符D来分隔矩阵的元素。

默认的行内分隔符是黑色的方格,行间分隔符为黑色的方格。

dlmwrite(‘myfile.txt’, M, ‘-append’)指定’-append’,表示将矩阵数据追加到文件的末尾。

如果不指定将覆盖文件中的任何现有数据。

注意此时只能加到末尾,不能再指定数据存入的位置了。

dlmwrite(‘myfile.txt’, M, ‘-append’, ‘attrib1’, value1, ‘attrib2’, value2, …)用户可以在attribx和valuex列表中指定多个属性-数值对。

每个属性后面必须跟一个相应的值。

属性有:delimiter,分隔符的字符串,用于分割矩阵的元素newline,每行终止使用字符roffset,行offset(偏移),在目标文件中矩阵数据开始写的行,offset基于0。

coffset,列offset(偏移),在目标文件中矩阵数据开始写的行,offset基于0。

precision,将数据写入到文件所使用的数值精度。

指定有效位数或C风格的格式化字符串%开始,如’%10.5f’dlmwrite(‘E:\matlab_data\j\fixdata.csv’, Mt, ’precision’, ‘%.5f’6.5.xlsread读取excel表格文件数据NUMERIC = xlsread(‘E:\matlab_data\test.xls’, ‘sheet2’, ‘a1:j5’);如果不指定,默认选择excel中的第一个sheet即sheet1; 默认读取所有单元格的数据。

这里只能取的是double双精度浮点型的数据,不能取字符,如果有字符将会是NaN(Not A Number) [NUMERIC,TXT]=xlsread(‘E:\matlab_data\test.xls’, ‘sheet2’, ‘a1:j5’);这里NUMERIC是double数据,而TXT里是字符,类型是cell string[NUMERIC,TXT,RAW]=xlsread(‘E:\matlab_data\test.xls’, ‘sheet2’, ‘a1:j5’);RAW里面是包含未处理的数据和文本的cell矩阵,访问cell内容如RAW(1,1),返回的是cell类型,而RAW{1,1}则返回cell中的内容修改cell内容可以用RAW{1,1}的形式,不能用RAW(1,1)的形式。

6.6.xlswrite写入excel表格文件数据[SUCCESS, MESSAGE]=xlswrite(‘E:\matlab_data\test.xls’, myarray, ‘Sheet3’,‘a1:j5’)如果xls文件或myarray为空,出错,终止。

如果不指定sheet默认为写入第一个sheet。

如果没有指定名称的sheet,将自动创建。

范围需和myarray相符合,或者只指定开始的单元格。

7.离散傅里叶变换7.1.dft7.2.快速傅里叶变换ffty=fft(X,N);plot(f,abs(y));假设采样频率为Fs,信号频率F,采样点数为N。