目录
判定线性相关并给出极大无关组
向量空间——维数
size()函数
MATLAB中没有直接判定线性相关并给出极大无关组。
根据线性代数的知识,先求出秩,根据秩的大小与向量的阶数比较判断出线性是否相关。
MATLAB求解矩阵的秩
>> A=[1 2 3;4 5 6;7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> rank(A)
ans =
2
秩的大小小于向量的阶数,所有该向量组线性无关。
[R,J]=rref(A)
A是矩阵
R是简化后的阶梯形
J是主元
A =
1 2 3
4 5 6
7 8 9
>> [R,J]=rref(A)
R =
1 0 -1
0 1 2
0 0 0
>> B=A(J,:)
B =
1 2 3
4 5 6
这样求得的B便是矩阵A的极大线性无关组。
这里的矩阵A是由行向量组成,所以取1、2行为极大线性无关组;如果矩阵A由列向量组成,则取某某列为极大线性无关组。
>> a1=[1 2 2 3]';
>> a2=[1 4 -3 6]';
>> a3=[-2 -6 1 -9]';
r =
3
>>
A =
1 1 -2
2 4 -6
2 -3 1
3 6 -9
>> rank(A)
ans =
2
>> [R,j]=rref(A)
R =
1 0 -1
0 1 -1
0 0 0
0 0 0
j =
1 2
>> A1=R(:,j)
A1 =
1 0
0 1
0 0
0 0
上面的例子中a1、a2、a3均为列向量,向量的阶数为3.
先看向量空间维数的定义:
先定义一个一维数组:
>> a=1:10
a =
1 2 3 4 5 6 7 8 9 10
一维数组可以看做向量,是由一行数据或者一列数据所组成,其大小为1xn或者是nx1。
再定义一个二维数组(即矩阵)
>> b=[1 2 3;4 5 6]
b =
1 2 3
4 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.8622
1.8339 0.3188
-2.2588 -1.3077
c(:,:,2) =
-0.4336 2.7694
0.3426 -1.3499
3.5784 3.0349
c(:,:,3) =
0.7254 -0.2050
-0.0631 -0.1241
0.7147 1.4897
>> ndims(c)
ans =
3
从而可以看出,这里建立了一个三维数组,这个三维数据是由三个3x2的矩阵组成。
即:二维表示平面;三维表示空间。
最后,补充MATLAB中size()函数的用法:
size:获取数组的行数和列数
(1)s=size(A),
当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时矩阵的行数,第二个元素是矩
阵的列数。第三个元素是.....以此类推。
>> A
A =
1 2 3
4 5 6
7 8 9
>> s=size(A)
s =
3 3
(2)[r,c]=size(A),
当有两个输出参数时,size函数将矩阵的行数返回到第一个输出变量r,将矩阵的列数返回到第二个输出变量c。
>> [r,c]=size(A)
r =
3
c =
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 =
1 2 3
4 5 6
>> size(A,1)
ans =
2
>> size(A,2)
ans =
3
我是小韩每天进步一点点,一名研0的研究生,刚开始写博客。希望和大家多多交流,一起进步!
求朋友点赞、收藏、关注哈,鼓励一下新人博主,或者提出建议。