MATLAB:什么是[Y,I] = max(AS,[],2);?

时间:2009-10-26 06:08:59

标签: matlab

我刚开始使用matlab并且需要非常快速地完成这个程序,所以我没有时间完成所有教程。

熟悉它的人可以解释下面的陈述正在做什么。

[Y,I]=max(AS,[],2);

[]AS之间的2让我感到困惑。并且是否已将最大值分配给YI

5 个答案:

答案 0 :(得分:5)

根据the reference manual

  

C = max(A,[],dim)返回标量A指定的dim维度中的最大元素。例如,max(A,[],1)会沿A的第一维(行)生成最大值。

     

[C,I] = max(...)找到A的最大值的索引,并在输出向量I中返回它们。如果有多个相同的最大值,则返回找到的第一个索引。

我认为[]只是为了区别于max(A,B)

答案 1 :(得分:2)

AS是矩阵。
这将在其第二维(即其列)中返回AS的最大元素

答案 2 :(得分:2)

C = max(A,[],dim)返回标量dim指定的A维度的最大元素。例如,max(A,[],1)会沿A的第一维(行)生成最大值。

此外,[C, I] = max(...)表单会为C中的I及其索引(即位置)提供最大值。

你为什么不试试这样的例子呢?将其输入MATLAB,看看你得到了什么。它应该让事情更容易看到。

m = [[1;6;2] [5;8;0] [9;3;5]]
max(m,[],2)

答案 3 :(得分:1)

此功能采用AS并沿AS的第二维产生最大值。它返回最大值'Y'和它的索引'I'。

答案 4 :(得分:0)

注意matlab惯例中的明显皱纹;有许多内置函数具有如下签名:

xs = sum(x,dim)

在维度昏暗中“沿着”工作。 max和min是奇怪的例外:

xm = max(x,dim);     %this is probably a silent semantical error!
xm = max(x,[],dim);  %this is probably what you want

我有时希望matlab有一个二进制最大值和最大崩溃,而不是把它们推到同一个函数中......