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的二维矩阵:

  1. size(A) %直接显示出A大小

输出:ans=
3 4

  1. s=size(A)%返回一个行向量s,s的第一个元素是矩阵 的行数,第二个元素是矩阵的列数

输出:s=
3 4

  1. [r,c]=size(A)%将矩阵A的行数返回到第一个输出变量r,将矩阵的列数返回到第二个输出变量c

输出:r=
3
c=
4

  1. 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()表明上看起来用法相似,效果也相似。

  1. 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

  1. 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):判断两个数组中的不同元素

  1. C = setdiff(A,B):
    返回在A中有,而B中没有的值,结果向量将以升序排序返回。在集合论中,c = A - B.A和B也可以是字符串细胞数组。
  2. C = setdiff(A,B,‘rows’):
    当A和B是具有相同列数的矩阵时,返回A中有而B中没有的那些行

8、intersect(A,B):设置两个数组的交集

  1. C = intersect(A,B) 返回 A 和 B 的共有数据,但是不包含重复项。C 已排序。
  2. C = intersect(A,B,setOrder) 以特定顺序返回 C。setOrder 可以是 ‘sorted’ 或 ‘stable’。
  3. [c, ia, ib] = intersect(A, B);这个函数是c返回A B的交集,ia,ib返回的是 交集 所在 数组的指标

9、unique(A):去掉矩阵A中的重复元素

  1. b = unique(A) 返回的是和A中一样的值,但是没有重复元素。产生的结果向量按升序排序。A可以是一个字符串的单元阵列。b可能为行向量也可能为列向量。
  2. b = unique(A,‘rows’) 获取矩阵A的不同行向量构成的矩阵。
  3. [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中的位置。

  • 4
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

辰阳星宇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值