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

Kel*_*ly 2 matlab matrix

我有以下内容:

a =

 5     1     4
 2     1     1
 5     2     8
Run Code Online (Sandbox Code Playgroud)

我期待返回第三行的最小值

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

b =

 2
Run Code Online (Sandbox Code Playgroud)

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

有什么建议?

The*_*eke 5

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

[v, i] = min(a(3,:));
a = bsxfun(@minus, a, a(:, i));
Run Code Online (Sandbox Code Playgroud)

更新:您可以a像这样提取和删除列:

[v, i] = min(a(3,:));
col = a(:, i);
a(:, i) = [];
Run Code Online (Sandbox Code Playgroud)