下三角半芬矿基质
2次观看(最近30天)
显示较旧的评论
如何为给定的半芬矩阵以这种形式构建稀疏矩阵?我只需要稀疏的半芬矿基质的下三角
例如,半芬属矩阵为Q0:
2 0 -1
Q0 = 0 0.2 0
-1 0 2
写为:
一世
=
[[
1
2
3
3
];
j
=
[[
1
2
3
1
];
C
=
[[
2
0.2
2-
1];
在哪里
我显示行的数量
J显示列数
c是属于(i,j)的Elemnt,它不是零,属于半芬特矩阵的下三角形
2条评论
接受的答案
更多答案(1)
约翰·德·埃里里科(John D'Errico)
2020年5月4日
编辑:约翰·德·埃里里科(John D'Errico)
2020年5月4日
您只想要下部三角元素。半明确性与您最终的要求无关。
A = Sprand(5,5,.3);
>>满(A)
ans =
0.46421 0.83266 0 0.022104 0.18026
0.26627 0 0 0 0
0 0 0 0 0
0 0 0 0.92865 0
0 0 0.37763 0.42783 0
>> [rind,cind,val] = find(tril(a))
rind =
1
2
5
4
5
cind =
1
1
3
4
4
val =
0.46421
0.26627
0.37763
0.92865
0.42783
这就是您将下部三角形提取到一组行和列索引以及这些位置中的非零元素的方式。从表面上看,这似乎是您的问题。但是,我的猜测是您真的想从这些值中构建稀疏矩阵吗?或者,也许您只是不明白MATLAB中已经存在稀疏矩阵,并且可以这样使用?根本不清楚什么是真正的问题。
无论如何,如果您想将矩阵构建为稀疏的矩阵,那么只需使用这些向量调用稀疏。
Atril =稀疏(Rind,Cind,Val,5,5)
心房=
(1,1)0.46421
(2,1)0.26627
(5,3)0.37763
(4,4)0.92865
(5,4)0.42783
>>满(Atril)
ans =
0.46421 0 0 0 0
0.26627 0 0 0 0
0 0 0 0 0
0 0 0 0.92865 0
0 0 0.37763 0.42783 0