我有一个大小为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 = [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中完成它,或者有什么简单的方法可以快速实现?
矩阵b由一系列1、一系列2、一系列3等组成,直到某个值k为止。
(例如b = [1 1 1 2 2 2 3 4 4],n = 9)
我想要对于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中完成它,或者有什么简单的方法可以快速实现?