在Matlab中找到每行的最大值,并将该行中的每个数字除以该数字

时间:2017-09-11 20:08:50

标签: matlab matrix normalize

我在Matlab中有一个133120x4矩阵。

我想在每一行中找到最大值,并将该行中的每个元素除以该特定值。

我需要使用某种循环吗?例如:我找到该矩阵中的行数(133120),并循环遍历该次数,然后逐行进行并使用max函数返回该行中的最大值,并将每个元素除以该行由最大值

返回的值

或者有更快的方法吗?

由于

编辑(澄清):

让我调用我的133120x4矩阵A。我想将行中的每个元素除以该行中的最大值。由于max和element-division是矢量化的,因此解决方案只是:

A_normal = A / max(A)

产生133120x4矩阵,但在每行中,最大值为1。

这是对的吗?编辑:这是不正确的,我仍在试图找出解决方案。非常感谢社区的帮助

1 个答案:

答案 0 :(得分:2)

newMat=mat./repmat(max(mat,[],2),[1 size(mat,2)]);] 计算最大值,重复结果N(= 4)次,这样每个元素就有一个,然后是元素划分 !

newMat=mat./max(mat,[],2);

或在R2016b或更新版

{{1}}