dan*_*tel 20 matlab matrix column-sum
有没有一种简单的方法可以将每个矩阵元素除以列总和?例如:
input:
1 4
4 10
output:
1/5 4/14
4/5 10/14
Run Code Online (Sandbox Code Playgroud)
gno*_*ice 42
以下列出了执行此操作的不同方法......
......使用bsxfun:
B = bsxfun(@rdivide,A,sum(A));
Run Code Online (Sandbox Code Playgroud)......使用repmat:
B = A./repmat(sum(A),size(A,1),1);
Run Code Online (Sandbox Code Playgroud)B = A./(ones(size(A,1),1)*sum(A));
Run Code Online (Sandbox Code Playgroud)...并使用for循环(由mtrw建议):
B = A;
columnSums = sum(B);
for i = 1:numel(columnSums)
B(:,i) = B(:,i)./columnSums(i);
end
Run Code Online (Sandbox Code Playgroud)更新:
从MATLAB R2016b及更高版本开始,大多数内置二进制函数(可在此处找到列表)支持隐式扩展,这意味着它们具有bsxfun默认行为.因此,在最新的MATLAB版本中,您所要做的就是:
B = A./sum(A);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17135 次 |
| 最近记录: |