【问题标题】:Find min of several columns in matlab without for loop在没有for循环的matlab中查找几列的最小值
【发布时间】:2017-01-20 05:43:17
【问题描述】:

我有一个矩阵M,其中有R 行和C*k 列。我想用R 行和C 列创建另一个矩阵F,这样

 F(:,j) = min(M(:,(j-1)*k+1:j*k),[],2)

换句话说,F 的第一列应该是M 的第一列k 的最小值。

F 的第二列应该是M 的第二个k 列的最小值,依此类推。 我正在尝试将矩阵M 重塑为R*C x k 矩阵D 找到最小值并将其再次重塑为R x C 矩阵。但我无法正确地将M 重塑为F,因此F(i, :) = M(b, (j-1)*k+1:j*k)

这是一个小例子:

k=2;
M = [1 2 3 4; 5 6 7 8; 9 10 11 12;];
then
F = [1 3; 5 7; 9 11]; 

【问题讨论】:

    标签: matlab


    【解决方案1】:

    最好的办法可能是将其重塑为R x k x (C / k) 矩阵,然后沿第二维计算min,然后压缩结果以删除现在为空的第二维。

    F = squeeze(min(reshape(M, size(M, 1), k, size(M, 2)/k), [], 2))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-27
      • 1970-01-01
      • 2020-04-09
      • 2018-09-21
      • 2018-08-17
      • 1970-01-01
      • 1970-01-01
      • 2019-09-18
      相关资源
      最近更新 更多