使用向量作为未按预期工作的索引,matlab

使用向量作为未按预期工作的索引,matlab,matlab,matrix,Matlab,Matrix,给定一个nXm矩阵a和一个mX2矩阵B以及一个大小为mX1的矩阵C,其中包含1s和2s C=[1 2 1 2 1…],取决于哪个列,我希望a的每一行都与之相乘。如何做到这一点?或者等效地,给定D=A*B,我如何仅访问C指定的值。我尝试了D(:,C),但结果不是预期的结果。 示例a=[12;34;56]。c=[1,2,1]。a(?)=[1 4 5] 有什么想法吗?对于最后一个示例,您可以运行以下命令: a(sub2ind([3,2],1:3,c))' 一般情况下,您可以执行以下操作: % n i

给定一个nXm矩阵a和一个mX2矩阵B以及一个大小为mX1的矩阵C,其中包含1s和2s C=[1 2 1 2 1…],取决于哪个列,我希望a的每一行都与之相乘。如何做到这一点?或者等效地,给定D=A*B,我如何仅访问C指定的值。我尝试了D(:,C),但结果不是预期的结果。 示例a=[12;34;56]。c=[1,2,1]。a(?)=[1 4 5]

有什么想法吗?

对于最后一个示例,您可以运行以下命令:

a(sub2ind([3,2],1:3,c))'
一般情况下,您可以执行以下操作:

% n is the length of the D which is nx2 matrix
D(sub2ind([n,2],1:n,C))'

对于最后一个示例,可以运行以下命令:

a(sub2ind([3,2],1:3,c))'
一般情况下,您可以执行以下操作:

% n is the length of the D which is nx2 matrix
D(sub2ind([n,2],1:n,C))'