我在Matlab中有一个133120x4矩阵。
我想在每一行中找到最大值,并将该行中的每个元素除以该特定值。
我需要使用某种循环吗?例如:我找到该矩阵中的行数(133120),并循环遍历该次数,然后逐行进行并使用max函数返回该行中的最大值,并将每个元素除以该行由最大值
返回的值或者有更快的方法吗?
由于
编辑(澄清):
让我调用我的133120x4矩阵A
。我想将行中的每个元素除以该行中的最大值。由于max和element-division是矢量化的,因此解决方案只是:
A_normal = A / max(A)
产生133120x4矩阵,但在每行中,最大值为1。
这是对的吗?编辑:这是不正确的,我仍在试图找出解决方案。非常感谢社区的帮助
答案 0 :(得分:2)
用newMat=mat./repmat(max(mat,[],2),[1 size(mat,2)]);]
计算最大值,重复结果N(= 4)次,这样每个元素就有一个,然后是元素划分
!
newMat=mat./max(mat,[],2);
或在R2016b或更新版
{{1}}