基于两个向量MATLAB构造该矩阵

时间:2014-07-23 14:16:24

标签: matlab vector matrix

我有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

请帮助

3 个答案:

答案 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预分配到适当大小的零矩阵(由rc中的最大值给出)。然后,要解决所需的条目,您需要转换为linear indexing,您可以使用sub2ind轻松完成:

A = zeros(max(r),max(c));
A(sub2ind(size(A),r,c)) = 1;