matlab 函数 矩阵,MATLAB——操作矩阵的常用函数

**

MATLAB——操作矩阵的常用函数

**

本篇文章的函数目录

函数名

作用

size(x)

用于求矩阵x的大小

sort(x)

可对x进行升序排序,x为向量、数组、矩阵等等

find(x)

用来返回向量或者矩阵中不为0的元素的索引

numl(A)

返回数组A中元素的个数

ismember(A,B)

集合成员判断B中成员和A成员是否相等,相等的位置用1,否则用0

findstr(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的列数。

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

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 =

[]

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中的位置。

你可能感兴趣的:(matlab,函数,矩阵)