rob*_*ess 2 matlab linear-algebra
这个问题可能与Matlab关系不大,而与矩阵代数有关(我大多数时候忘记了我的大学课程).说我有一个m x n矩阵X和一个m x 1矩阵B.如何将划分X通过B使得所有元素iX的第i行被分段由分割iB的第i行,从而导致另一个m x n矩阵Y?
例如
X = [2 4 8; 3 9 27; 4 16 64]
B = [2; 3; 4]
X ? B = [2/2 4/2 8/2; 3/3 9/3 27/3; 4/4 16/4 64/4]
ans =
1 2 4
1 3 9
1 4 16
Run Code Online (Sandbox Code Playgroud)
ang*_*nor 11
最好不要使用repmat- 它很慢并为工作区分配额外的内存.您可以使用bsxfun,这是一个内置函数,因此它更快,并避免额外的工作区:
X = [2 4 8; 3 9 27; 4 16 64]
B = [2; 3; 4]
bsxfun(@rdivide, X, B)
ans =
1 2 4
1 3 9
1 4 16
Run Code Online (Sandbox Code Playgroud)