MATLAB中的矩阵运算函数

上传人:油条 文档编号:101399986 上传时间:2019-09-28 格式:DOCX 页数:4 大小:26.90KB
返回 下载 相关 举报
MATLAB中的矩阵运算函数_第1页
第1页 / 共4页
MATLAB中的矩阵运算函数_第2页
第2页 / 共4页
MATLAB中的矩阵运算函数_第3页
第3页 / 共4页
MATLAB中的矩阵运算函数_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《MATLAB中的矩阵运算函数》由会员分享,可在线阅读,更多相关《MATLAB中的矩阵运算函数(4页珍藏版)》请在金锄头文库上搜索。

1、1,round函数函数简介调用格式:Y = round(X)在matlab中round也是一个四舍五入函数。对数组A中每个元素朝最近的方向取整数部分,并返回与A同维的整数数组B,对于一个复数参量A,则分别对其实部和虚数朝最近的方向取整数部分,并返回一复数数据B。(1)fix(x) : 截尾取整.>> fix( 3.12 -3.12)ans =3    -3(2)floor(x):不超过x 的最大整数.(高斯取整)>> floor( 3.12 -3.12)ans =3    -4(3)ceil(x) :

2、 大于x 的最小整数>> ceil( 3.12 -3.12)ans =4    -3(4)四舍五入取整>> round(3.12 -3.12)ans =0>> round(3.12 -3.12)ans =3    -32,reshape函数:重新调整矩阵的行数、列数、维数先给上一段代码:>> a=1 2 3;4 5 6;7 8 9;10 11 12;>> b=reshape(a,2,6);这段代码的结果是这样的:>> a&#

3、160;    1     2     3     4     5     6     7     8     9    10    11  

4、;  12>> b     1     7     2     8     3     9     4    10     5    11   &#

5、160; 6    12对于  b=reshape(a,m,n);其中的规律是这样的,先把矩阵a按列拆分,然后拼接成一个大小为m*n的向量。然后对这个向量每隔m间隔取一个元素组成一个向量b_i,之后的向量b_i+1也是这样生成,只不过第一个元素往下移一位。这样做完之后得到m个大小为n的行向量,将这些行向量拼接即可得到矩阵b。3,取模(mod)与取余(rem)通常取模运算也叫取余运算,它们返回结果都是余数.rem和mod唯一的区别在于:    当x和y的正负号一样的时候,两个函数结果是等同的;当x和y的符号不同时,r

6、em函数结果的符号和x的一样,而mod和y一样。    这是由于这两个函数的生成机制不同,rem函数采用fix函数,而mod函数采用了floor函数(这两个函数是用来取整的,fix函数向0方向舍入,floor函数向无穷小方向舍入)。    rem(x,y)命令返回的是x-n.*y,如果y不等于0,其中的n = fix(x./y),而mod(x,y)返回的是x-n.*y,当y不等于0时,n=floor(x./y)例:>> mod(5,2) ans =1        

7、0;          %“除数”是正,“余数”就是正>> mod(-5,2) ans =1>> mod(5,-2) ans =-1                  %“除数”是负,“余数就是负>> mod(-5,-2) ans =-1             

8、    %用rem时,不管“除数”是正是负,“余数”的符号与“被除数”的符号相同>> rem(5,2) ans =1                   %“被除数”是正,“余数”就是正>> rem(5,-2)   ans =1>> rem(-5,2) ans =-1                &#

9、160;%“被除数”是负,“余数”就是负>> rem(-5,-2) ans =-14,size函数size(A)函数是用来求矩阵的大小的,你必须首先弄清楚A到底是什么,大小是多少。比如说一个A是一个3×4的二维矩阵:      1、size(A) %直接显示出A大小       输出:ans=3    4       2、s=size(A)%返回一个行向量s,s的第一个元素是

10、矩阵的行数,第二个元素是矩阵的列数       输出:s=3    4       3、r,c=size(A)%将矩阵A的行数返回到第一个输出变量r,将矩阵的列数返回到第二个输出变量c       输出:r=3               

11、 c=4       4、r,c,m=size(A)       输出:r=3                c=4                m=1也就说它把二维矩阵当作第三

12、维为1的三维矩阵,这也如同我们把n维列向量当作n×1的矩阵一样       5、当a是一个n维行向量时,size(A)把其当成一个1×n的矩阵,因此size(a)的结果是       ans=1   n而不是a的元素个数n       6、size(A,n)       如果在size函数的输入参数中再添加一项n,并用

13、1或2为n赋值,则 size将返回矩阵的行数或列数。其中r=size(A,1)该语句返回的是矩阵A的行数, c=size(A,2) 该语句返回的是矩阵A的列数。5,deconv函数求多项式x4+8x3-10除以多项式2x2-x+3的结果q,r=deconv(1 8 0 0 -10,2 -1 3)%q是商,r是余数。数组从后到前表示从次项到各高次项的系数6,bitor(a,b)对a、b按位进行或运算bitand(a,b)对a、b按位进行和运算bitcmp(a,N)a在2N-1上按位的补集,bitcmp():逐位逻辑非。Bitxor 按位异或7,格式:B = sort(A)&#

14、160;  %沿着输入参量 A的不同维的方向、从小到大重新排列 A中的元素。A 可以是字符串的、实数的、复数的单元数组。对于 A 中完全相同的元素,则按它们在 A 中的先后位置排列在一块;若 A 为复数的,则按元素幅值的从小到大排列,若有幅值相同的复数元素,则再按它们在区间- , 的幅角从小到大排列;若 A 中有元素为NaN,则将它们排到最后。若 A为向量,则返回从小到大的向量,若A为二维矩阵,则按列的方向进行排列;若A为多维数组,sort(A)把沿着第一非单元集的元素像向量一样进行处理。B=sort(A,dim) %沿着矩阵A中指定维数dim方向重新排列A中的元素。B,IX=sor

15、t(A); %其中IX是一个大小等于size(A)的数组,其每一列是A中列向量的元素相对应的置换位置记号。举例:A = 3 3 5 0 4 2 ;sort(A,1) %纵向排列ans =     0     3     2     3     4     5sort(A,2) %横向排列ans =     3 

16、;    3     5     0     2     4>>A = -1.9, -0.2, 3.1415926, 5.6, 7.0, 2.4+3.6i; >>B1,INDEX = sort(A)计算结果为:     B1 =        

17、Columns 1 through 4           -0.2000      -1.9000       3.1416         2.4000 + 3.6000i         Columns 5 through

18、6            5.6000      7.0000     INDEX =           2     1     3     6   

19、;  4     5由此可知,如果A与另一个矩阵C(char或cell)一一对应,如果用B1,INDEX = sort(A)对A进行排序,则可以取得索引INDEX,进而可以查询B1中每个元素与C中哪一个对应。8,repmat函数B = repmat(A,m,n)B = repmat(A,m n)B = repmat(A,m n p.)这是一个处理大矩阵且内容有重复时使用,其功能是以A的内容堆叠在(MxN)的矩阵B中,B矩阵的大小由MxN及A矩阵的内容决定,如果A是一个3x4x5的矩阵,有B = 

20、repmat(A,2,3)则最后的矩阵是6x12x5例如:>>B=repmat( 1 2;3 4,2,3)B = 1      2      1     2    1    23      4      3  

21、0;  4    3    41     2     1     2     1     23     4     3     4  

22、60;  3     4其结果变为4X6。也可以置放文字串,如:>>C=repmat(' Long live the king!', 2,2)C =Long live the king! Long live the king!Long live the king! Long live the king!也可置放其他的:>> D=repmat(NaN,2,5)D =NaN   NaN   NaN   NaN   NaNNaN   NaN   NaN   NaN   NaN9.a*b就是矩阵乘法a.*b就是a,b的对应元素相乘10 你好,matlab里 是左除,/ 是右除。如果是数字计算,则左除和右除是等效的,例如 3/2 = 23。而对于矩阵运算,则二者不等效。矩阵除法在 matlab 里定义为矩阵求逆后相乘。例如 A的逆矩阵是 A1,则 B/A = B*A1,AB = A1*B。矩阵乘法不满足交换律,因此需要有左右除法之分。矩阵求逆的命令是 inv ,即 A1 = inv(A)。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号