目录
判定线性相关并给出极大无关组
向量空间——维数
size()函数
判定线性相关并给出极大无关组
MATLAB中没有直接判定线性相关并给出极大无关组。
根据线性代数的知识,先求出秩,根据秩的大小与向量的阶数比较判断出线性是否相关。
MATLAB求解矩阵的秩
>> A=[1 2 3;4 5 6;7 8 9]A =123456789>> rank(A)ans =2
秩的大小小于向量的阶数,所有该向量组线性无关。
[R,J]=rref(A)
A是矩阵
R是简化后的阶梯形
J是主元
A =123456789>> [R,J]=rref(A)R =10 -1012000>> B=A(J,:)B =123456
这样求得的B便是矩阵A的极大线性无关组。
这里的矩阵A是由行向量组成,所以取1、2行为极大线性无关组;如果矩阵A由列向量组成,则取某某列为极大线性无关组。
>> a1=[1 2 2 3]';>> a2=[1 4 -3 6]';>> a3=[-2 -6 1 -9]';r =3>> A =11 -224 -62 -3136 -9>> rank(A)ans =2>> [R,j]=rref(A)R =10 -101 -1000000j =12>> A1=R(:,j)A1 =10010000
上面的例子中a1、a2、a3均为列向量,向量的阶数为3.
向量空间——维数
先看向量空间维数的定义:
先定义一个一维数组:
>> a=1:10a =1 2 34 5 67 8 9 10
一维数组可以看做向量,是由一行数据或者一列数据所组成,其大小为1xn或者是nx1。
再定义一个二维数组(即矩阵)
>> b=[1 2 3;4 5 6]b =1 2 34 5 6
二维数组是是由有一定的行数列数的数据组成,如上所示,其大小为mxn。
利用查看数组的维数函数ndims查看:>> ndims(a)ans =2>> ndims(b)ans =2
我们发现,向量的维数和矩阵的维数都是2。一维数组可以看做是1xn或nx1的矩阵。不管是一维数组或者二维数组,他们的维数是相同的。根据MATLAB的规定,它们的维数都是2。
可以通过帮助指令查看:
help ndims
参考文档给出的说明是:
The result is 2 because the vector has a size of 1-by-5.
结果为 2,因为向量的大小为 1×5。
所以MATLAB将向量当做是矩阵来处理的。
多维数组:
创建一个正态随机数的3x2x3的数组
>> c=randn(3,2,3)c(:,:,1) =0.5377 0.86221.8339 0.3188-2.2588 -1.3077c(:,:,2) =-0.4336 2.76940.3426 -1.34993.5784 3.0349c(:,:,3) =0.7254 -0.2050-0.0631 -0.12410.7147 1.4897
>> ndims(c)ans =3
从而可以看出,这里建立了一个三维数组,这个三维数据是由三个3x2的矩阵组成。
即:二维表示平面;三维表示空间。
size()函数
最后,补充MATLAB中size()函数的用法:
size:获取数组的行数和列数
(1)s=size(A),
当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时矩阵的行数,第二个元素是矩
阵的列数。第三个元素是.....以此类推。
>> AA =123456789>> s=size(A)s =33
(2)[r,c]=size(A),
当有两个输出参数时,size函数将矩阵的行数返回到第一个输出变量r,将矩阵的列数返回到第二个输出变量c。
>> [r,c]=size(A)r =3c =3
(3)size(A,n),
如果在size函数的输入参数中再添加一项n,并用1或2为n赋值,则 size将返回矩阵的行数或列数。其中r=size(A,1)该语句返回的时矩阵A的行数, c=size(A,2) 该语句返回的时矩阵A的列数。
>> A=[1 2 3;4 5 6]A =123456>> size(A,1)ans =2>> size(A,2)ans =3
我是小韩每天进步一点点,一名研0的研究生,刚开始写博客。希望和大家多多交流,一起进步!
求朋友点赞、收藏、关注哈,鼓励一下新人博主,或者提出建议。