【问题标题】:Extract a column vector from a sparse matrix in MATLAB?从MATLAB中的稀疏矩阵中提取列向量?
【发布时间】:2014-04-15 12:11:31
【问题描述】:

我是 MATLAB 新手。

我有一个稀疏矩阵 (2649429x148),它是通过 spconvert 函数得到的。 它是一个稀疏的用户电影矩阵。我想获得特定电影的所有收视率。 user-id 空间有一些空隙,不连续。

我尝试了以下

 mat     
            (967,1)                       1
           (7798,1)                       4
          (16272,1)                       2
          (21722,1)                       3
             .
             .
             .
          (11,148)                        5
          (2342432,148)                   5
          (2332332,148)                   5

 mat(:,4)      % it get the following 

            (967,1)                       1
           (7798,1)                       4
          (16272,1)                       2
          (21722,1)                       3
          (42773,1)                       3
          (48286,1)                       5
          (98649,1)                       2
         (156319,1)                       2
         (165720,1)                       2
          .........

我想得到(xxxxxx, 4) .....

如何获取特定电影所有评分的列向量?

【问题讨论】:

  • 这对我来说很好用:A = rand(2649429,148); a = A(:,4);你得到什么错误?
  • 那个神奇的数字4是什么?您需要清楚具体地了解到目前为止所遵循的程序、数据设置方式以及您打算实现的目标。
  • @NKN 但这不是稀疏矩阵。
  • @Divakar 这是第四列。每列代表完整矩阵中的一部电影。
  • @zeronone 如果每列代表一部电影,那么收视率在哪里?

标签: matlab matrix indexing


【解决方案1】:

看看它是否有效 -

[~,col1,val] = find(mat);
ratings = val(col1==4)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    • 2017-03-26
    • 1970-01-01
    • 2013-04-11
    相关资源
    最近更新 更多