MATLAB 您所在的位置:网站首页 indices函数matlab MATLAB

MATLAB

2023-02-23 12:41| 来源: 网络整理| 查看: 265

**

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 实验室设备网 版权所有