【发布时间】:2015-11-24 15:04:14
【问题描述】:
我想创建一个 4 x 4 稀疏矩阵 A。我想将值(例如 1)分配给以下条目:
A(2,1), A(3,1), A(4,1)
A(2,2), A(3,2), A(4,2)
A(2,3), A(3,3), A(4,3)
A(2,4), A(3,4), A(4,4)
根据manual page,我知道我应该分别按行和列存储索引。也就是说,对于行索引,
r=[2,2,2,2,3,3,3,3,4,4,4,4]
同样,对于列索引
c=[1,2,3,4,1,2,3,4,1,2,3,4]
由于我想为每个条目分配 1,所以我使用
value = ones(1,length(r))
然后,我的稀疏矩阵将是
Matrix = sparse(r,c,value,4,4)
我的问题是这样的:
确实,我想构造一个任意维度的方阵。说,如果它是一个 10 x 10 矩阵,那么我的列向量将是
[1,2,..., 10, 1,2, ..., 10, 1,...,10, 1,...10]
对于行向量,它将是
[2,2,...,2,3,3,...,3,...,10, 10, ...,10]
我想问一下是否有一种快速有效的方式来构建这些列和行向量?提前致谢。
【问题讨论】:
-
如果不知道您究竟想要非零元素在哪里,就不可能回答这个问题。您的示例向量根本不清楚。
-
抱歉不清楚。那些非零元素都是 1。
-
看起来您想创建一个密集的
ones矩阵并将其存储为稀疏矩阵。为什么? -
非零元素在哪里,而不是非零元素在哪里。您在向我们询问您的行索引和列索引之间的关系,这基本上可以是任何内容。