1

当我使用它时,我试图在矩阵中获取实际元素(indX)的行

matrix2 = matrix .* indX; 

假设 matrix = one(2,2)
我正在等待 matrix2 的这些值 [1 1; 2 2]

我可以为此使用“for”

[rows columns] = size(matrix)
for (indX=0; indX<rows; indX++)
matrix2(indX,:) = matrix(indX,:) .* indX;
endfor

是否可以在不使用 "for" 的情况下获得 indX ?
如果是,我该怎么做?

4

1 回答 1

2

您可以使用bsxfun

matrix2 = bsxfun(@times, (1:size(matrix,1))', matrix); %'
matrix =
 4     2
 3     3
 4     1
>> bsxfun(@times, (1:size(matrix,1))', matrix ), % '
ans =
 4     2
 6     6
12     3
于 2012-12-17T16:10:08.090 回答