x0 = rand(n,2) % Generate nx2 matrix of U(0,1) random numbers
2.**将第一列乘以W
在本例中,x0(:,1)表示取x0的所有行(第一个参数中的冒号)和第1列(1)。这里,*运算符指示W是标量或适当大小的数组,用于可行的矩阵乘法(我猜是标量)。符号.*可用于逐个元素的乘法;有关详细信息,请参见here和here。 x0(:,1)=W*x0(:,1) % Multiply (all rows) 1st column by W
3.**将第一列乘以H。
使用与#2相似的逻辑。 x0(:,2)=H*x0(:,2) % Multiply (all rows) 2nd column by H
1条答案
按热度按时间anauzrmj1#
我鼓励你学习MATLAB Tutorial,因为索引数组是一项基本技能。也可以参见Basic Concepts in MATLAB。下面是逐行的描述,让你开始。
这些代码行在做什么?
让我们一行一行地看。
rand()
生成uniform random numbers的n x 2矩阵(~U(0,1)**)。x0 = rand(n,2) % Generate nx2 matrix of U(0,1) random numbers
W
在本例中,
x0(:,1)
表示取x0
的所有行(第一个参数中的冒号)和第1列(1)。这里,*
运算符指示W
是标量或适当大小的数组,用于可行的矩阵乘法(我猜是标量)。符号.*
可用于逐个元素的乘法;有关详细信息,请参见here和here。x0(:,1)=W*x0(:,1) % Multiply (all rows) 1st column by W
H
。使用与#2相似的逻辑。
x0(:,2)=H*x0(:,2) % Multiply (all rows) 2nd column by H
x0(:)
接受数组x0
,并将所有元素强制放到一列中。来自colon的文档:
A(:)将A的所有元素重新整形为一个列向量。如果A已经是一个列向量,则此操作无效。
一个相关的操作是**通过将行向量与transpose操作符组合在一起,**强制生成一个行向量。
例如,尝试以下操作:
x0(:).'
What is Matlab's colon operator called?
How does MATLAB's colon operator work?
Combination of colon-operations in MATLAB