基于矩阵坐标绘制线条

时间:2015-10-09 05:15:23

标签: matlab

我的老师告诉我们用matlab来计算矩阵的svd。这是我到目前为止所做的:

X=0:0.01:0.9; 
Y=5*X+randn(size(X));

A = [[X.'], [Y.']]

[U,S,V] = svd(A)

plot(X,Y,'ok')


L1 = [0 0]
L2 = [V(1,1) V(1,2)]

hold on
line (L1, L2)
hold off

我已经生成了一些(几乎)随机点,然后我把它们放在一个矩阵中然后我计算了svd。问题是我无法想象V矩阵。从(0,0)到(v [1,1],v [1 2])的行应该是数据密度最大的方向。 V矩阵在这里看起来很好,当我使用笔和纸从原点绘制线到(v [1,1],v [1 2])时,一切看起来都很好,但是当我使用line创建一条线时在这两点之间,我没有得到我想要的线,这条线看起来像这样:

enter image description here

1 个答案:

答案 0 :(得分:1)

我认为你想要

 L1 = [0 V(1,1)]
 L2 = [0 V(1,2)]

这里你称之为L1的是x坐标,L2是y坐标。要让你的第一个点成为原点,那么在两个数组的第一个位置都是0。同样,要使矩阵定义第二个点,您需要在两个数组中的第二个位置使用矩阵元素。