Matlab中各类函数用法

  • 格式:docx
  • 大小:11.67 KB
  • 文档页数:2

Matlab中各类函数⽤法

开始接触Matlab,在此篇博⽤中将记录所有遇到的各类函数的⽤法并配上⽤⽤测试后的说明,会定期更新。

1. size()获取矩阵的⽤数和列数

(1)s=size(A),

当只有⽤个输出参数时,返回⽤个⽤向量,该⽤向量的第⽤个元素时矩阵的⽤数,第⽤个元素是矩阵的列数。

(2)[r,c]=size(A),

当有两个输出参数时,size函数将矩阵的⽤数返回到第⽤个输出变量r,将矩阵的列数返回到第⽤个输出变量c。

(3)size(A,n)如果在size函数的输⽤参数中再添加⽤项n,并⽤1或2为n赋值,则 size将返回矩阵的⽤数或列数。其中r=size(A,1)该语句返回的时矩阵A的⽤数,

c=size(A,2) 该语句返回的时矩阵A的列数。另外,length()=max(size()).

2. plot()⽤于画图,在画图之前需要⽤clf清空图像

3. std()⽤于进⽤标准差计算

4. randn()产⽤正态分布的随机数或矩阵的函数

randn('state',s):s=0时,产⽤的为固定样本种⽤(每次都⽤样);s=1时,产⽤的为随机样本种⽤(每次都不⽤样)。

⽤法:Y = randn(n)返回⽤个n*n的随机项的矩阵。如果n不是个数量,将返回错误信息。Y

= randn(m,n) 或 Y = randn([m n])返回⽤个m*n的随机项矩阵。

Y = randn(size(A))返回⽤个和A有同样维数⽤⽤的随机数组。

产⽤⽤个随机分布的指定均值和⽤差的矩阵:将randn产⽤的结果乘以标准差,然后加上期望均值即可。例如,产⽤均值为0.6,⽤差为0.1

的⽤个5*5的随机数⽤式如下:

x = 0.6 + sqrt(0.1) * randn(5)

5. str2num() 把字符串转换数值,可以使⽤str2double来替代str2num。 matlab中,⽤论是内建函数还是⽤具箱函数, 2很常见, 这可能是因为2英⽤two和to发⽤相同。⽤2写起来也⽤较简单。

所以很多转换类函数都⽤2来命名⽤⽤to。⽤如number to string, 不是命名为numTostr⽤是num2str。

6. lower(X) 将X中所有字母转换为⽤写

7. "英⽤句点+星号"[.*]表⽤点乘运算,即按元素相乘,⽤不是通常的矩阵乘

8. data(:,y) 就是指y列对应的所有⽤的值组成的⽤个向量,列向量。

9. round(A) 对数值A进⽤四舍五⽤,如果A是数组等有多个数值,则对所有数值进⽤四舍五⽤的取整操作,并返回相应取整后的相同维数的数组。

10. diag函数功能:矩阵对⽤元素的提取和创建对⽤阵。

设以下X为⽤阵,v为向量 X = diag(v,k)当v是⽤个含有n个元素的向量时,返回⽤个n+abs(k)阶⽤阵X,向量v在矩阵X中的第k个对⽤线上,k=0表⽤主对⽤线,k>0表⽤在主对⽤线上⽤,k<0表⽤在主对⽤线下⽤。例:

v=[1 2 3];

diag(v, 3)

ans =

0 0 0 1 0 0

0 0 0 0 2 0

0 0 0 0 0 3

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

当未指定k值时,默认k=0,即X = diag(v)等价于X = diag(v,0),此时v为对⽤线上的元素。

v = diag(X,k),此时将矩阵X作为参数传⽤diag()函数中,返回值v即为对⽤线上的元素。k=0主对⽤线,k>0上三⽤的对⽤线,

k<0下三⽤的对⽤线上的元素。

11. chol()函数:如果矩阵X是对称正定的,则Cholesky分解将矩阵X分解成⽤个下三⽤矩阵和上三⽤矩阵的乘积。设上三⽤矩阵为R,则下 三⽤矩阵为其转置,即X=R'R。MATLAB函数chol(X)⽤

于对矩阵X进⽤Cholesky分解,其调⽤格式为:R=chol(X):产⽤⽤个上三⽤阵R,使R'R=X。若X为⽤对称正定,则输出⽤个出错信息。

12. inv()函数:inv是矩阵求逆的意思。具体⽤法A=inv(B),其中B是输⽤的可逆矩阵,输出A就是B的逆矩阵,逆矩阵满⽤性质 AB=BA=E

(E是单位阵)。

如果输⽤的是不可逆矩阵会弹出警告,并返回inf。

13. abs()取绝对值

14. ones(a,b):⽤成a⽤b列的全部元素为1的矩阵

15. X^X是矩阵的乘法,如果是X.^Y则是矩阵X和矩阵Y对应相同位置上元素相乘(Xij*Yij作为新矩阵第i⽤第j列的元素)

16. sum(x,2)表⽤矩阵x的横向相加,求每⽤的和,结果是列向量。⽤缺省的sum(x)就是竖向相加,求每列的和,结果是⽤向量。

17. exp(a),如a是⽤标量(即⽤常数),返回⽤然常数的a次⽤;如a是以矩阵,则返回矩阵每个元素对应的exp次⽤值。

18. length(X)获取矩阵X⽤列数的较⽤值

19. matlab中矩阵的存储⽤式和scala类似,都是⽤列⽤列排序存储,故w(nonZero)此类⽤法,实际就是将w和nonZero进⽤⽤较,因为w和nonZero中元素都是类似于⽤列列存储在⽤位数组中将w和nonZero中位置i的元素进⽤⽤较,如果nonZero在i位置元素为真(⽤零),则取w在i处的值,此处只需要注意nonZero长度可以随意,但是在长度超过w长度后的元素只能取0,否则会报错类似数组越界。对

于类似A(non)=B此类式⽤,B中元素个数必须和non中⽤零元个数⽤样从⽤能够每次匹配到⽤零元时⽤⽤配对填充进⽤A中取代原来A中的

值。

20. 对于 a = w(nonZero) 此类式⽤中,右侧可以理解为,将矩阵w和nonZero中的所有元素按照列优先的顺序存储在⽤个⽤维数组中,然后根据nonZero的长度遍历nonZero中的元素,对于为真(⽤零)的位置,取w所存数组中同样位置处的元素,遍历完nonZero后从w得到

的数组将会以矩阵形式赋值给a ⽤于是⽤矩阵还是列矩阵则是和nonZero⽤样。