博客
关于我
MATLAB——操作矩阵的常用函数
阅读量:381 次
发布时间:2019-03-05

本文共 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 = 4


2、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)

输出:

3


5、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中常用矩阵操作函数的详细介绍,希望对您有所帮助!

转载地址:http://sjewz.baihongyu.com/

你可能感兴趣的文章
大数据处理黑科技:揭秘PB级数仓GaussDB(DWS) 并行计算技术
查看>>
C++调用Go方法的字符串传递问题及解决方案
查看>>
云原生2.0时代下,DevOps实践如何才能更加高效敏捷?
查看>>
技巧收藏|10个JavaScript常用数组操作方法
查看>>
两种端到端通用目标检测方法
查看>>
探索语言交互技术在政务数字化的应用
查看>>
让 AI “潜入”物流中心,你的快递很快就到!
查看>>
云小课 | 守护网络安全不是问题,iptables的四表五链为你开启“八卦阵”
查看>>
LiteOS内核源码分析:任务栈信息
查看>>
23种设计模式之迭代器模式
查看>>
23种设计模式之组合模式
查看>>
mysql zip安装
查看>>
mysql修改密码
查看>>
virtualbox中 Kali Linux安装增强功能
查看>>
virtualbox中 Ubuntu挂载共享文件夹
查看>>
Python 内置函数笔记
查看>>
BootStrapTable 错误
查看>>
PHP 中的Trait
查看>>
PHP 配置文件
查看>>
PHP 脚本不报错
查看>>