【发布时间】:2015-09-05 13:12:55
【问题描述】:
如何在 Matlab 中获得由给定向量生成的子空间?
例如,我有向量$v_1 ,...,v_n$; Matlab 中v_i 的跨度是多少?
我怎样才能拥有将每个向量投影到这个子空间上的矩阵?
我的意思是,我怎样才能给 Matlab 一些向量并得到向量跨度上的投影矩阵?
你能给我鞋码吗? 我是 Matlab 的新手,需要您的帮助。
请帮帮我。
谢谢。
【问题讨论】:
如何在 Matlab 中获得由给定向量生成的子空间?
例如,我有向量$v_1 ,...,v_n$; Matlab 中v_i 的跨度是多少?
我怎样才能拥有将每个向量投影到这个子空间上的矩阵?
我的意思是,我怎样才能给 Matlab 一些向量并得到向量跨度上的投影矩阵?
你能给我鞋码吗? 我是 Matlab 的新手,需要您的帮助。
请帮帮我。
谢谢。
【问题讨论】:
您可以使用QR decomposition 来获得v 列的正交化。那么投影矩阵就是Q * Q':
[Q,R] = qr(v, 0); % "economy size" QR decomposition
proj_v = Q * Q';
【讨论】:
Q,投影矩阵是Q*Q'。