在编写matlab程序时经常用到size(),length(),ndims()这三个函数,下面就总结一下这三个函数的用法。


1. size(a)表示矩阵每个维度的长度

比如size([1 2 3;4 5 6])等于[2 3],表示他有2行3列。size([1 2 3])等于[1 3],表示他有1行3列。另外size(a,n)表示矩阵a在第n个维度下的长度。比如size([1 2 3;4 5 6],1)等于2,表示有2行。size([1 2 3;4 5 6],2)等于3,表示有3列

2. length(a)表示矩阵a的最大的长度,即max(size(a))

比如length([1 2 3;4 5 6])等于3,因为2和3中最大是3。当a是向量时,即表示向量的元素个数,因为向量总是1×n或n×1的,而n一定大于或等于1.所以得到的结果一定是n

3. ndims(a)表示矩阵a的维数,即length(size(a))

比如ndims([1 2 3;4 5 6])等于2,因为他是二维矩阵。matlab认为向量也是二维矩阵,只不过其中一个维度的长为1。因此ndims([1 2 3])也等于2。

我们可以构造一个三维甚至更高维度的矩阵,比如a=cat(3,[1 2 3 4;5 6 7 8],[9 8 7 6;5 4 3 2])。他除了行和列以外还有一个维度,我们暂且把它叫做高度。也就是说a有两层,第一层是[1 2 3 4;5 6 7 8],第二层是[9 8 7 6;5 4 3 2]。此时有size(a)=[2 4 2],即2行4列2层。length(a)=4

([2 4 2]中最大为4),ndims(a)=3(因为他有3个维度)。