matlab:获取数组的大小

MATLAB的编程环境下,和数学上的矩阵是一个意义(坐标索引从 1 开始)。我们多使用矩阵和向量这两个数学意义上的数据结构。

所以以下把多维(除一维)数组称为矩阵,一维数组称为数组或向量。对于那种每一维的长度不同的多维数组,在matlab和数学研究中,我们一会给它补0,变成矩阵。
1、1*n的矩阵是一维数组(向量)
2、 m*n的矩阵是m(m>1)维数组

1
2
3
4
5
6

这里提供了三种比较常用的办法,其一般使用场景如下:
- size() 矩阵(二维)
- length()数列(一维)
- ndims() 高维矩阵(三维)

1 size()

1.1 功能

主要用来获得矩阵的各个维数的大小,或者指定维数的大小。

1.2 语法

size():获取矩阵的行数和列数

1
2
3
4
d = size(X)
[m,n] = size(X)
m = size(X,dim)
[d1,d2,d3,...,dn] = size(X)
  1. s = size(A),当只有一个输出参数时,返回一个行向量,该行向量的第一个元素是矩阵的行数r,第二个元素是矩阵的列数c。即s = [r, c]
  2. [r, c] = size(A),当有两个输出参数时,size函数将矩阵的行数r返回到第一个输出变量,将矩阵的列数c返回到第二个输出变量。
  3. 如果在size函数的输入参数中再添加一项,并用1或2为该项赋值,则size将返回矩阵的行数或列数。
    其中:
    r = size(A,1):返回的时数组A的行数
    c = size(A,2) :返回的时数组A的列数

2 length()

2.1 功能

用来获得数组长度,即一维数组的长度或者多维数组中最大的维数行数或列数中的较大值

2.2 语法

1
numberOfElements = length(array)

length()size()使用区别:一般情况下,
获取一维数组的长度用length()函数;
获取多维数组的维数大小用size()

3 numel()

3.1 功能

计算一个数组所有的元素数或指定下标的元素总数。

3.2 语法

1
2
n = numel(A)
n = numel(A, index1, index2, ...indexn)

4 ndims()

4.1 功能

获取矩阵的维数

一般来说,多维数组我们用数学意义上的矩阵来理解。多维矩阵,从数学意义上来理解,即矩阵的元素不是数字。

4.2 语法

1
n = ndims(A)

4.3 例子

1
2
3
4
5
6
7
n1 =  ndims( [1 2 3;4 5 6] );   % n1 = 2  二维矩阵

a = cat( 3,[1 2 3;4 5 6],[5 6 7;8 9 10] );
n2 = ndims(a) % n2 = 3 三维矩阵
% a 是构造的三维矩阵,第一层是[1 2 3;4 5 6],第二层是[5 6 7;8 9 10]

n3 = size(a) % n3 = [2,3,2],即2行3列2层。

Reference