如何根据特定行标准的最小值返回整列?

时间:2012-10-06 17:50:43

标签: matlab matrix

我有以下内容:

a =

 5     1     4
 2     1     1
 5     2     8

我希望返回第三行的最小值

b = min(a(3,:));

b =

 2

我如何能够返回整个列(即(1; 1; 2))然后减去从矩阵中删除该列?

有什么建议吗?

2 个答案:

答案 0 :(得分:5)

如果你想从整个矩阵中减去最小值的列(按照最初的要求),请使用bsxfun,如下所示:

[v, i] = min(a(3,:));
a = bsxfun(@minus, a, a(:, i));

更新: 您可以从a中提取并删除列,如下所示:

[v, i] = min(a(3,:));
col = a(:, i);
a(:, i) = [];

答案 1 :(得分:3)

要删除列,请使用

a(:,i) = [];

其中i是列的索引