MATLAB | 您所在的位置:网站首页 › indices函数matlab › MATLAB |
** MATLAB——操作矩阵的常用函数** 本篇文章的函数目录 函数名作用size(x)用于求矩阵x的大小sort(x)可对x进行升序排序,x为向量、数组、矩阵等等find(x)用来返回向量或者矩阵中不为0的元素的索引numl(A)返回数组A中元素的个数ismember(A,B)集合成员判断B中成员和A成员是否相等,相等的位置用1,否则用0findstr(A,B),strfind(A,B)在A,B中较长的字符串中查找较短的字符串出现的次数setdiff(A,B)返回在数组A中有B中没有的值,并将其结果向量以升序排序返回intersect(A,B)返回A和B共有的数据,但不包含重复项,将其结果按升序排序unique(x)去掉矩阵x中重复的值并按升序排序 详细介绍1、size(x):用来求矩阵的大小 比如说一个A是一个3×4的二维矩阵: size(A) %直接显示出A大小输出:ans= 3 4 s=size(A)%返回一个行向量s,s的第一个元素是矩阵 的行数,第二个元素是矩阵的列数输出:s= 3 4 [r,c]=size(A)%将矩阵A的行数返回到第一个输出变量r,将矩阵的列数返回到第二个输出变量c输出:r= 3 c= 4 size(A,n)如果在size函数的输入参数中再添加一项n,并用1或2为n赋值,则 size将返回矩阵的行数或列数。其中r=size(A,1)该语句返回的时矩阵A的行数, c=size(A,2) 该语句返回的时矩阵A的列数。来自 https://zhidao.baidu.com/question/232202350.html 2、sort(x) :可以对参数的元素进行升序排序或降序排 sort()的参数可以是向量,矩阵,数组等等。当X是向量时,sort(X)对X的元素进行升序排序;当X是矩阵时,sort(X)对X的每一列进行升序排序; .>A=magic(3) A = 8 1 6 3 5 7 4 9 2 .>sort(A) ans = 3 1 2 4 5 6 8 9 7 Y=sort(X,DIM,MODE) 参数DIM表示对哪一个维数进行排序,例如当X是一个二维矩阵,当DIM=1时表示对X的每一列进行排序,当DIM=2时表示对X的每一行进行排序。 参数MODE表示按哪一种模式进行排序,当MODE=‘ASCEND’的时进行升序排序,当MODE=‘DESCEND’时,进行降序排序。 Y返回已经排好序的X。 3、find(x):用来返回向量或者矩阵中不为0的元素的位置索引 .> X = [1 -3 0;0 0 8;4 0 6] X = 1 -3 0 0 0 8 4 0 6 .> X = [1 0 2; 0 1 1; 0 0 4] X = 1 0 2 0 1 1 0 0 4 .> k = find(X) k = 1 5 7 8 9 find(x,k):返回前k的不为0的元素: .>ind = find(X,2) ind = 1 3 也可写成: ind = find(X,2,‘first’) ind = 1 3 返回最后k个不为0的元素: ind = find(X,2,‘last’) ind = 8 9 [m,n] = find(B,2)返回的是矩阵B中大于2的坐标。 [i,j,v]=find(A) 返回矩阵A中非零元素所在的行i,列j,和元素的值v(按所在位置先后顺序输出) A=[3 2 0; -5 0 7; 0 0 1]; .> [i,j,v]=find(A) i = 1 2 1 2 3 j = 1 1 2 3 3 v = 3 -5 2 7 1 来自 https://zhidao.baidu.com/question/178286906.html 4、numl(A):返回数组A中的元素个数 5、ismember(A,B):集合成员,判断B中成员是否和A中成员数值相等,相等的位置用1,否则为0 A = [5 3 4 2]; B = [2 4 4 4 6 8]; Determine which elements of A are also in B. Lia = ismember(A,B) Lia = 0 0 1 1 A(3) and A(4) are found in B. 6、findstr(A,B)/stirfind(A,B):在A,B中较长的字符串中查找较短的字符串出现的次数 matlab中这两个字符串查找的函数findstr(), strfind()表明上看起来用法相似,效果也相似。 findstr(s1,s2)–在较长的字符串中查找较短的字符串出现的次数,并返回其位置,因此无论s1,s2哪个为长字符串,位置在前在后都没有关系。例: s = ‘Find the starting indices of the shorter string.’; findstr(s, ‘the’) ans = 6 30 findstr(‘the’, s) ans = 6 30 strfind(s1,s2)–or strfind(s1,pattern),因此其意思在s1中搜索pattern例: S = ‘Find the starting indices of the pattern string’; strfind(S, ‘in’) ans = 2 15 19 45 strfind(S, ‘In’) ans = [] 来自 https://blog.csdn.net/hustrains/article/details/9154061 7、setdiff(A,B):判断两个数组中的不同元素 C = setdiff(A,B): 返回在A中有,而B中没有的值,结果向量将以升序排序返回。在集合论中,c = A - B.A和B也可以是字符串细胞数组。C = setdiff(A,B,‘rows’): 当A和B是具有相同列数的矩阵时,返回A中有而B中没有的那些行8、intersect(A,B):设置两个数组的交集 C = intersect(A,B) 返回 A 和 B 的共有数据,但是不包含重复项。C 已排序。C = intersect(A,B,setOrder) 以特定顺序返回 C。setOrder 可以是 ‘sorted’ 或 ‘stable’。[c, ia, ib] = intersect(A, B);这个函数是c返回A B的交集,ia,ib返回的是 交集 所在 数组的指标9、unique(A):去掉矩阵A中的重复元素 b = unique(A) 返回的是和A中一样的值,但是没有重复元素。产生的结果向量按升序排序。A可以是一个字符串的单元阵列。b可能为行向量也可能为列向量。b = unique(A,‘rows’) 获取矩阵A的不同行向量构成的矩阵。[b,m,n] = unique(A) 也返回索引向量m和n,使得B = A(M)和A= B(N)。m的每一个元素是最大的下标,使得B = A(M)。对于行的组合,B = A(M,:)和A=B(N,:)。 m为矩阵b中的元素在矩阵A中的位置。n为矩阵A中的元素在矩阵b中的位置。 |
CopyRight 2018-2019 实验室设备网 版权所有 |