matlab中获取稀疏矩阵中的值

iwehdio的博客园:https://www.cnblogs.com/iwehdio/

  • 今天用matlab中的HHT函数输出的结果是一个spare matrix系数矩阵类型,但是不知道怎么取出其中的元素。

  • matlab中稀疏矩阵的说明可以看MATLAB学习 稀疏矩阵sparse matrix。以及官方文档

  • 有的说法是,用full函数将矩阵直接转换为稠密矩阵再索引。

  • 正确的说法是:查找非零元素的索引和值

  • 具体方法是,用find函数获取非零元素在稀疏矩阵中的位置和值:

    s=sparse([1,2,3,4,5],[5,4,3,2,1],[12 23 34 45 53],6,7) % 6行7列的稀疏矩阵
    
    [x,y,value]=find(s)	% 获取索引和值
    
    % 结果如下----------------
    
    >> s
    
    s =
    
       (5,1)       53
       (4,2)       45
       (3,3)       34
       (2,4)       23
       (1,5)       12
       
       
    >> [x';y';value']
    
    ans =
    
         5     4     3     2     1
         1     2     3     4     5
        53    45    34    23    12
    

iwehdio的博客园:https://www.cnblogs.com/iwehdio/
原文地址:https://www.cnblogs.com/iwehdio/p/14087194.html