
MATLAB——操作矩阵的常用函数
发布日期:2021-05-08 14:54:35
浏览次数:12
分类:精选文章
本文共 2612 字,大约阅读时间需要 8 分钟。
MATLAB——操作矩阵的常用函数
本篇文章的函数目录
函数列表
函数名 | 作用 |
---|---|
size(x) | 用于求矩阵x的大小。 |
sort(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(A) | 去掉矩阵A中的重复元素,按升序排序。 |
详细介绍
1、size(x):求矩阵的大小
size(x)用于获取矩阵x的行数和列数。
- 当输入为矩阵时,size(x)返回一个行向量,第一个元素为行数,第二个元素为列数。
- 也可以通过size(x, 1)获取行数,size(x, 2)获取列数。
示例:
假设矩阵A为3×4的矩阵:A = ones(3,4); size(A) % 直接显示矩阵大小
输出:
3 4或者通过rows和cols获取:
[r, c] = size(A);
输出:
r = 3, c = 42、sort(x):对矩阵或向量进行排序
sort(x)可以对向量、矩阵、数组等进行升序或降序排序。
- 默认按升序排序。
- 参数DIM表示对哪一维度排序(行或列)。
- 参数MODE表示排序方式(ASCEND升序,DESCEND降序)。
示例:
A = magic(3); % 3×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, 'descend') % 按降序排序 Y = 9 8 7 6 5 4 3 2 1 当DIM指定时: ```matlab Y = sort(A, 2, 'descend') % 按列排序 Y = 8 3 4 9 5 2 7 6 1 ---### 3、find(x):查找不为0的元素位置find(x)用于返回向量或矩阵中不为0的元素的位置索引。 - 默认返回所有非零元素的索引。 - 可通过参数指定返回前k个或最后k个元素。 - 也可以返回非零元素的值及位置。 **示例:** ```matlab X = [1 -3 0; 0 0 8; 4 0 6]; X = 1 -3 0 0 0 8 4 0 6 k = find(X) % 返回所有非零元素的索引 k = 1 5 7 8 9 ind = find(X, 2) % 返回前2个非零元素的索引 ind = 1 3 ind = find(X, 2, 'last') % 返回最后2个非零元素的索引 ind = 8 9 [i, j, v] = find(A) % 返回非零元素的位置和值 A = [3 2 0; -5 0 7; 0 0 1]; [i, j, v] = 1 1 3 2 1 -5 1 3 1
4、numl(A):返回数组元素个数
numl(A)用于返回数组A中元素的总数。
示例:
A = [1, 2, 3]; numl(A)
输出:
35、ismember(A,B):判断成员是否相等
ismember(A,B)用于判断B中成员和A中成员是否相等,返回1表示相等,0表示不等。
示例:
A = [5 3 4 2]; B = [2 4 4 4 6 8]; Lia = ismember(A, B); Lia = 0 0 1 1
6、findstr(A,B)/strfind(A,B):字符串查找
- findstr(s1, s2):在较长的字符串中查找较短的字符串出现的次数。
- strfind(s1, pattern):在s1中搜索pattern出现的位置。
示例:
s = 'Find the starting indices of the shorter string.' findstr(s, 'the') % 在s中查找'the'出现的次数 ans = 6 30 strfind(s, 'in') % 在s中查找'in'出现的位置 ans = 2 15 19 45 strfind(s, 'In') % 整个搜索不区分大小写 ans = []
7、setdiff(A,B):计算两个数组的差集
setdiff(A,B)返回A中有而B中没有的值,结果按升序排序。
示例:
A = [1, 2, 3]; B = [2, 4, 5]; C = setdiff(A, B); C = [1, 3] 当A和B为矩阵时: ```matlab A = [1, 2; 3, 4]; B = [2, 5; 4, 6]; C = setdiff(A, B, 'rows'); % 按行比较 C = [1, 0; 3, 5]
8、intersect(A,B):计算两个数组的交集
intersect(A,B)返回A和B共有的数据,不包含重复项,结果按升序排序。
示例:
A = [1, 2, 3]; B = [2, 3, 4]; C = intersect(A, B); C = [2, 3] 当A和B为矩阵时: ```matlab A = [1, 2; 3, 4]; B = [2, 3; 4, 5]; C = intersect(A, B); C = [2, 3]
9、unique(A):去掉重复元素并排序
unique(A)去掉矩阵A中的重复元素并按升序排序。
示例:
A = [1, 2, 2, 3]; B = unique(A); B = [1, 2, 3] 当unique(A, 'rows')时: ```matlab A = [1, 2; 2, 3]; B = unique(A, 'rows'); B = [1, 2; 3]
以上是MATLAB中常用矩阵操作函数的详细介绍,希望对您有所帮助!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年03月31日 07时44分58秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
上周热点回顾(6.3-6.9)
2019-03-06
上周热点回顾(8.12-8.18)
2019-03-06
【故障公告】升级阿里云 RDS SQL Server 实例故障经过
2019-03-06
蹒跚来迟:新版博客后台上线公测
2019-03-06
上周热点回顾(9.16-9.22)
2019-03-06
上周热点回顾(11.4-11.10)
2019-03-06
[网站公告]11月26日00:00-04:00阿里云RDS升级
2019-03-06
[网站公告]又拍云API故障造成图片无法上传(已恢复)
2019-03-06
上周热点回顾(12.16-12.22)
2019-03-06
云计算之路-阿里云上:对“黑色30秒”问题的猜想
2019-03-06
云计算之路-阿里云上:“黑色30秒”走了,“黑色1秒”来了,真相也许大白了
2019-03-06
云计算之路-阿里云上:奇怪的CPU 100%问题
2019-03-06
云计算之路-阿里云上:2014年6月12日12点IIS请求到达量突降
2019-03-06
上周热点回顾(6.9-6.15)
2019-03-06
上周热点回顾(6.16-6.22)
2019-03-06
上周热点回顾(6.23-6.29)
2019-03-06
上周热点回顾(10.20-10.26)
2019-03-06
上周热点回顾(2.16-2.22)
2019-03-06
上周热点回顾(3.2-3.8)
2019-03-06
[网站公告]3月10日23:00-4:00阿里云SLB升级,会有4-8次连接闪断
2019-03-06