我有一个值向量,我想分配给NxN矩阵。矢量值对应于矩阵的下半部分,但矩阵是对称的。
问题在于矢量值不是按顺序排列,而是非常混乱,我看到这种情况的唯一方法是通过矩阵中相应的坐标来分配值。这些坐标是已知的,可用作不同的向量。
实际上我有:
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,而且不是专业人士。这就是我认为可行的方式,因为没有别的东西可用。
如果有人可以提供帮助,或者有其他想法来解决这个问题,我将不胜感激。
提前致谢!
答案 0 :(得分:2)
您可以使用sub2ind
执行此操作。
ind = sub2ind( size(K), R,C);
K(ind) = V;