【发布时间】:2015-06-01 05:42:23
【问题描述】:
我有一个大小为 m x n 的矩阵 A 和另一个大小为 1 x n 的矩阵 b(在 Matlab 中)。
矩阵 b 由 1 的序列、2 的序列、3 的序列等组成,直到某个值 k。
(例如 b = [1 1 1 2 2 2 3 4 4],n = 9)
我想取 A,对于 A 中的每一行,选择每个段中的最大值,将该子序列中的其他所有内容归零。
例如,对于一行 A = [0 -1 2 3 4 1 3 4 5]) 我会得到
[0 0 2 0 4 0 3 0 5]
如果 A (m > 1) 中有多行,则每行都应该发生这种情况。
我可以使用 for 循环轻松做到这一点,但它的工作速度非常慢,因为我在 m 和 n 上都循环。
在 Matlab 中是否有一个“oneliner”可以做到这一点,或者一些简单的快速工作?
【问题讨论】: