Matlab矩阵和向量中的常用函数

版权声明:本文为博主原创文章,如有转载请标注来源。 https://blog.csdn.net/shengchaohua163/article/details/79490201

Matlab矩阵和向量中的常用函数

博主在用Matlab实现聚类算法时,经常需要对矩阵和向量进行处理,其中涉及了很多函数。因为记性不好,所以在此对经常用到的函数进行记录。不定时更新…

1. 最常用最简单的

  • zeros()、ones()、size()、length()

2. 最小值:min()

  • C = min(A): A是向量,返回最小的元素。
  • C = min(A): A是矩阵,把A的列看做列向量, 返回每一列的最小值,最小值组成一个行向量。
  • C = min(A, [], dim): dim=1, 等价于min(A); dim=2, 返回每一行的最小值,最小值组成一个列向量。
  • [C, I] = min(…): 括号中可以使用上述形式。C是最小值。I是最小值所在的位置,位置组成一个向量(因为另一维已知)。
  • C = min(A, B): 返回A和B中对应位置的最小值,组成一个与A和B相同维度的数据。A和B要么维度相同,要么二者中有一个是1*1维的。

3. 最大值:max()

  • 同min

4. 排序:sort()

  • B = sort(A): A是向量,按升序进行排序;A是矩阵,把矩阵的列看作向量,对每一列按升序进行排序。
  • B = sort(A, dim): dim=1, 等价于sort(A); dim=2, 对矩阵的每一行按升序进行进行排序。
  • B = sort(…, mode): …表示上述语法。mode默认为‘ascend’,即升序;mode=’descend’, 按降序进行排序。

5. 对行进行排序:sortrows()

  • B = sortrows(A): 按A的第一列进行升序排列矩阵中的行(每一行代表一个整体,同时移动)。如果第一列有相同元素,则参考第二列,以此类推。
  • B = sortrows(A, column): 按照指定的列进行排序。如果该列中有相同元素,则保持原来顺序。
  • B = sortrows(A, [col1, col2]): 首先按照col1列对行进行排序;如果有相同元素,再按col2列进行排序。
  • B = sort(…,Name,Value) 指定用于排序的其他参数。例如,sort(A,’ComparisonMethod’,’abs’) 按模对 A 的元素进行排序。
  • [B,I] = sort(…) 还会为上述任意语法返回一个索引向量的集合。I 的大小与 A 的大小相同,它描述了 A 的元素沿已排序的维度在 B 中的排列情况。例如,如果 A 是一个向量,则 B = A(I)。

6. 寻找元素:find()

  • ind = find(X): 返回向量X中非零元素的位置。如果X是行向量,则ind是一个行向量,否则ind是一个列向量。如果X中没有非零元素,则ind为空。
  • ind = find(X > num): 使用逻辑表达式!返回X中满足条件的元素的位置!
  • ind = find(X, k) or ind = find(X, k, ‘first‘): 返回向量X中最多前k个非零元素的位置,k为正整数。如果X中非零元素的个数m少于k, 则只返回m个非零元素的位置。
  • ind = find(X, k, ‘last‘): 返回向量X中最多后k个非零元素的位置,k为正整数。如果X中非零元素的个数m少于k, 则只返回m个非零元素的位置。
  • [row, col] = find(X): 返回矩阵X中非零元素的行位置和列位置。
  • [row, col] = find(X > num): 返回矩阵X中满足条件的元素的行位置和列位置。
  • [row, col, v] = find(X, …): 返回X中非零元素的行位置,列位置和对应元素。
  • [row, col, v] = find(X > num, …): 如果括号中为逻辑表达式,则返回X中满足条件的元素的行位置,列位置和评价该表达式逻辑表达式v。

7. 重复:repmat()

  • B = repmat(A, n): 把矩阵A在水平和竖直方向扩展n*n倍,返回矩阵B的大小为size(A)*n。
  • B = repmat(A, sz1, sz2,…,szn): 把矩阵A扩展为指定的倍数。repmat(A, n)等价于repmat(A, n, n)。

8. 随机数:rand()

  • r = rand(): 返回一个0-1之间的伪随机数,其来自于标准正态分布的(0, 1)区间。
  • r = rand(n): 返回一个n*n的伪随机数矩阵,每个元素都是0-1之间的伪随机数。
  • r = rand(sz1, …, szn): 返回指定大小(sz1-sz2-…-szn)的伪随机数矩阵。

9. 随机排列:randperm()

  • p = randperm(n): 返回一个行向量,包含了[1, n]所有整数的随机排列。
  • p = randperm(n, k): 返回一个行向量,包含了从[1, n]随机排列中挑选的k个唯一整数。注:可以看作p=randperm(n)中的任意k个元素。

9. 去重:unique()

  • C = unique(A): 返回与A相同的数据,但是没有重复。如果A是向量,返回一个与A相同形式的向量,C由A中的唯一值组成,并且按序排列;如果A是矩阵,返回一个列向量C,C由A中的唯一值组成,并且按序排列。
  • C = unique(A): 如果A是一个表格,返回A中唯一的行,并且按序排列。
  • [C, ia, ic] = unique(A): A是向量,返回A中唯一值组成的向量C,以及唯一值的索引向量ia和ic,索引向量满足C=A(ia)和A=C(ic)。

猜你喜欢

转载自blog.csdn.net/shengchaohua163/article/details/79490201
今日推荐