2013-02-20 118 views
1

我有一个我想分配给NxN矩阵的值的矢量。矢量值对应于矩阵的下半部分,但矩阵是对称的。通过坐标将矢量元素分配到矩阵MATLAB

问题是矢量值不是按顺序排列,而是相当混乱,我发现这种情况发生的唯一方法是通过矩阵中相应的坐标值来分配值。这些坐标是已知的并且作为不同的向量可用。

所以实际上我:

ROW =

1 25 26 27 28 29 30  2 37 38 ... 

COLUMN =

1  1  1  1  1  1  1  2  2  2 ... 

VECTOR =

1.2694 -0.1983 0.0574 0  0  0  0 1.2694 0  0 ... 

...其中的值代表:K (1,1)= 1.2694,k(25,1)= - 0.1983,k (2,2)= 0 ...等

而结果我想,会是这样的:K = [

1.2694  k(1,2) k(1,3) ... 
    0   0  k(2,3)  ...  
-0.0951 -0.0261 0.3019 ...  
    .   .   .  ... 
    .   .   .  ... 
    .   .   .  ...     

我MATLAB的临时用户,而不是definetily亲。这是我认为可行的方式,因为没有其他有用的东西。

如果有人可以帮忙,或有另一个解决这个问题的想法,我会gratefull。

在此先感谢!

回答

2

您可以使用sub2ind来做到这一点。

ind = sub2ind(size(K), R,C); 

K(ind) = V; 
+0

非常感谢,这就是它!我不知道这个命令的存在。应该多读些关于这些关于矩阵操纵的内容。 – user2091461 2013-02-20 23:51:15