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

基于两个向量MATLAB构建该矩阵,matlab,vector,matrix,Matlab,Vector,Matrix,我有两个向量,我想构造一个基于r和c的矩阵 r= c= 我想构造一个矩阵a,这样a(1,2)=a(2,4)=a(4,6)=a(6,8)=a(8,10)=1其他元素0 请帮助首先将A预先分配到适当大小的零矩阵(由r和c中的最大值给出)。然后,要处理所需的条目,您需要转换为,您可以轻松地使用: 你可以用它来完成这个任务 首先,构造一个由零组成的矩阵: A = zeros(max(r),max(c)); 然后将元素设置为1: A( size(A,1) * (c-1) + r ) = 1; 您可以使

我有两个向量,我想构造一个基于r和c的矩阵

r=

c=

我想构造一个矩阵a,这样a(1,2)=a(2,4)=a(4,6)=a(6,8)=a(8,10)=1其他元素0


请帮助

首先将
A
预先分配到适当大小的零矩阵(由
r
c
中的最大值给出)。然后,要处理所需的条目,您需要转换为,您可以轻松地使用:

你可以用它来完成这个任务

首先,构造一个由零组成的矩阵:

A = zeros(max(r),max(c));
然后将元素设置为
1

A( size(A,1) * (c-1) + r ) = 1;

您可以使用稀疏矩阵的构造函数:

full(sparse(r,c,1))
顺便说一句,如果你想把它应用到有许多零的大型矩阵,请使用稀疏矩阵。对于具有多个零的矩阵,它使用的内存要少得多:

sparse(r,c,1)

我相信第二个
10
可以被
size(A,1)
替换,使这个更通用。我认为
10
s和
max(r)
都应该被
max(r)
替换,实际上第一个应该像路易斯·门多那样预先分配。好的解决方案!
A( size(A,1) * (c-1) + r ) = 1;
full(sparse(r,c,1))
sparse(r,c,1)