matlab size、numel、length、fix函数的使用,补充nargin

时间:2022-09-06 22:07:27
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的列数。 numel():返回数组或者向量中所含元素的总数。EX:n = numel(A) length():如果A为非空数组,返回行数和列数两者之间数值较大的那一个值,即相当于max(size(A));如果A为空数组,则返回0;
      如果A为一向量则返回A的长度,n=max(size(A));
   若A为非空数组,返回A的最大维数;若A为空数组,返回A中最长的非零维数。 nargin:作为一个关键字,监控函数输入变量的个数。 fix:向零靠拢取整。 补充知识:可能有很多人都不知道有向量a,和矩阵A,a(A)会进行怎样的运算,下面来做一个实验:
A = [1, 4; 2, 3]
a = 5:8
输出结果如下:

>> a(A)

ans =

5 8
6 7

可以看到其实是括号里面的矩阵A每个元素都在选择向量a中对应位置的元素,从而组成了新的矩阵B=a(A);

另外还有  向量名(ones(n,1),:)这种操作,其实是把向量进行行扩展,扩展成列为向量位数,行数为n的矩阵

并且每行元素都对应相同,如下例子:

b =

1 2 3 4

>> b(ones(5,1),:)

ans =

1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4

另外还有,向量名(:,ones(n,1)),表示进行列扩展,这里不再举例了。