MATLAB中常用的函数总结

一、find()函数

查找非零元素的位置。

>> A = [1,0,0;0,2,0;0,0,3]

A =

     1     0     0
     0     2     0
     0     0     3

>> x = find(A)

x =

     1
     5
     9

A是一个3×3的矩阵,其中有零元素和非零元素;使用find()函数查找A中的非零元素的位置,并生成列向量赋给向量x。

二、isprime(n)函数

判断一个数n是否是素数,若是素数则返回1,否则返回0.

>> x = 1:100;
>> k = isprime(x);
>> y = find(k);
>> z = x(y)

z =

  列 1 至 9

     2     3     5     7    11    13    17    19    23

  列 10 至 18

    29    31    37    41    43    47    53    59    61

  列 19 至 25

    67    71    73    79    83    89    97
  1. 定义x是一个从1到100的行向量
  2. 使用isprime()函数,参数为向量x,得到100个由1和0组成的行向量k
  3. 使用find()函数查找k中非零元素的位置并赋值给向量y
  4. 输出行向量x中的y表示位置的元素(即素数)并赋值给z

三、size()函数

获取一个矩阵的行数和列数,结果为由行数和列数组成的向量

>> A = [1:3;4:6;7:9]

A =

     1     2     3
     4     5     6
     7     8     9

>> size(A)

ans =

     3     3

由于A是一个3×3的矩阵,所以结果为一个行向量(3,3)

四、sub2ind(S,I,J)

将一个矩阵的下标转换为序号。matlab中的矩阵元素按列存储,因此序号为第一列第一个元素、第一列第二个元素·····第n列第n个元素
其中

  1. S为要转换矩阵的行数和列数,是一个由行数和列数组成的向量,通常用size()函数获取。
  2. I和J分别为要转换矩阵的行下标和列下标。当i和j为矩阵时,其行列数必须相同
>> A = [1:3;4:6]

A =

     1     2     3
     4     5     6

>> D = sub2ind(size(A),[1,2;2,2],[1,1;3,2])

D =

     1     2
     6     4

当下标(i,j)分别为以下时的序号分别为

  1. (i,j) = (1,1) 为1
  2. (i,j) = (2,1) 为2
  3. (i,j) = (2,3) 为6
  4. (i,j) = (2,2) 为4

ind2sub(S,D)函数

将一个矩阵的序号转化为下标
其中,D为要转化的序号

>> [I,J] = ind2sub([3,3],[1,3,5])

I =

     1     3     2


J =

     1     1     2

输入一个3×3的矩阵,求序号为1,3,5的元素的下标,得到的下标为
(1,1)(3,1)(2,2)

reshape(A,m,n)函数

在矩阵元素保持不变的前提下,将矩阵A转换为m×n的矩阵
注意:该函数只改变矩阵A的排列方式,不改变元素个数和排列顺序

>> A = [1:9]

A =

     1     2     3     4     5     6     7     8     9

>> B = reshape(A,3,3)

B =

     1     4     7
     2     5     8
     3     6     9

你可能感兴趣的:(matlab)