gramSchmidt

New in version 1.30.22.

语法

gramSchmidt(X, [normalize = false])

参数

X 一个列满秩矩阵(每个列向量均线性无关),且不能包含空值。

normalize 可选参数,一个布尔值,表示是否输出标准正交矩阵,默认值为 false。

详情

将列满秩矩阵转换为一个列向量正交的矩阵。

返回值:DOUBLE 类型矩阵。

例子

$ x = matrix([2 3 5, 3 6 2, 8 3 6]);
$ gramSchmidt(x)

col1    col2    col3
2.0000  1.2105  4.7932
3.0000  3.3157  -2.1968
5.0000  -2.4736 -0.5991

//指定 normalize=true,则输出标准正交矩阵。
$ gramSchmidt(x, true)

col1    col2    col3
0.3244      0.2808  0.9033
0.4867      0.7693  -0.414
0.8111      -0.5739 -0.1129


//矩阵的列向量线性相关时,则会报错
$ x = matrix([1 4, 2 5, 3 6]);
$ gramSchmidt(x)

vector set must be linearly independent