我有2个向量,我想构建一个基于onr和c
的矩阵r =
1
2
4
6
8
c =
2
4
6
8
10
我想构造一个矩阵A,使得A(1,2)= A(2,4)= A(4,6)= A(6,8)= A(8,10)= 1个其他元素0
请帮助
答案 0 :(得分:7)
您可以将构造函数用于稀疏矩阵:
full(sparse(r,c,1))
顺便说一下,如果你想将它应用于有很多零的大型矩阵,那么请使用稀疏的矩阵。对于有很多零的矩阵,它使用的内存要少得多:
sparse(r,c,1)
答案 1 :(得分:3)
您可以使用linear indexing来完成此操作。
首先,构造一个由零组成的矩阵:
A = zeros(max(r),max(c));
然后将元素设置为1
:
A( size(A,1) * (c-1) + r ) = 1;
答案 2 :(得分:2)
首先将A
预分配到适当大小的零矩阵(由r
和c
中的最大值给出)。然后,要解决所需的条目,您需要转换为linear indexing,您可以使用sub2ind
轻松完成:
A = zeros(max(r),max(c));
A(sub2ind(size(A),r,c)) = 1;