2012-02-07 58 views

回答

4

A=ones(10,1)*10只是产生10s的列矩阵(10行,1列)。

eye(10)构成10x10单位矩阵。

(A,:)索引到您刚刚创建的标识矩阵中。这里的A充当数字索引到eye(10)矩阵。假设A只是10.然后myMatrix(A,:)将选择myMatrix的第10行。由于A是10 的10,myMatrix(A,:)选择第10行myMatrix10次。所以你10次回到eye(10)的第10行。

如果你做A=ones(5,1)*10并看看eye(10)(A,:);请注意,您现在只能获得5次A的第10行。

你不能在Matlab中这样做,因为它不会让你做一击eye(10)(A,:)。您必须分两步完成:

A = ones(10,1)*10 
I = eye(10) 
I(A,:) 

More on various types of matrix indexing in Matlab