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

Find the largest value of each row in Matlab and divide each number in that row by the number

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

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

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

的 returned 值

或者有更快的方法吗?

谢谢

编辑(澄清):

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

A_normal = A / max(A)

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

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

max 计算最大值,重复结果 N(=4) 次,这样每个元素都有一个,然后按元素除法 !

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

或在 R2016b 或更高版本中

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