如何提取稀疏矩阵的元素?

时间:2014-05-04 19:30:17

标签: matlab extract extraction sparse-matrix

我有一个稀疏矩阵:

 A=


  (14,13)      0.5286
  (15,14)      0.6781
  (16,15)      0.5683
  (17,16)      1.2773
  (18,17)      1.0502
  (19,18)      0.4966
  (21,19)      0.9951
  (21,20)      0.4522
  (22,21)      0.8507
  (23,22)      1.0727
  (24,23)      0.8288
  (25,24)      0.5811
  (26,25)      0.8235
  (28,26)      1.5128
  (30,28)      0.7966
  (30,29)      0.6363
  (31,29)      0.8254
  (32,31)      0.8573
  (33,32)      1.0753

这是最小生成树的结果。现在我要提取13,14,15,...26,28,29,...33。 如图所示27不在数字之间。所以pred给出:13 14 15 16 17 18 19 21 22 23 24 25 26 28 29 30 31 32 20和33不是。 如何提取在顶部说出的总数?

1 个答案:

答案 0 :(得分:0)

[ii jj] = find(A);
answer = unique([ii(:); jj(:)]);

应该这样做。

请注意,带有两个输出的find命令会为您提供所有非零元素的行和列索引。由于您拥有最小生成树,因此您关注的每个数字都需要在行或列中至少出现一次(例如,您的矩阵在第一个索引中的数字29不会出现,但它会在第二个索引中出现)

unique函数确保出现的每个数字仅表示一次。