1、先说分别的生成方法:matlab生成空矩阵的做法是:a=[];生成零矩阵的做法是:b=[0 0 0]; %一个有三个值是0的元素,维数是1*3;c=[0 0 0;0 0 0];%一个两行的全是0的矩阵,维数是2*3;d=zeros(m,n);%如果m、n在之前的语句中赋值了,那么d就是维度为m*n的全是0的矩阵。
2、那么区别是什么呢?空矩阵a是没有任何元素的一个空空如也的矩阵,元素个数是0。定义它的作用是先声明一下我接下恝依在绌来要用一个名字为a的矩阵啦,而在定义的时候,这个矩阵规模会多大,不太确定。零矩阵是有元素的,元素数值是0,元素个数不是0。定义它一般就是事先知道我接下来要一直操作的矩阵b、c、d的矩阵规模(是提前就知道的),一般不会再去扩充行或列。定义为元素是0是为了给一个默认值,后面再在计算过程中不断修改每个元素的值(有的元素如果就是0,那么就可以不修改了)。
3、在matlab语句中,定义一个空矩阵是有用的,虽然在matlab里变量(矩阵)不需要提前声明、可以随时更改规模(这点与C++不同),但在不知道矩阵规模的情况下、接下来又会有多个地方用到a矩阵的问题中,这么做是一个好的编程习惯。