MATLAB:What';s[Y,I]=max(AS,[],2);?

MATLAB:What';s[Y,I]=max(AS,[],2);?,matlab,Matlab,我刚开始学习matlab,需要很快完成这个程序,所以我没有时间阅读所有的教程 请熟悉它的人解释一下下面的陈述在做什么 [Y,I]=max(AS,[],2); AS和2之间的[]是最让我困惑的地方。和是分配给Y和I的最大值吗?此函数取AS并沿AS的第二维度产生最大值。它返回最大值“Y”及其索引“I”。根据 C=max(A,[],dim)返回标量dim指定的A维度上的最大元素。例如,max(A,[],1)沿A的第一个维度(行)生成最大值 [C,I]=max(…)查找A的最大值的索引,并在输出向量I

我刚开始学习matlab,需要很快完成这个程序,所以我没有时间阅读所有的教程

请熟悉它的人解释一下下面的陈述在做什么

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

AS
2
之间的
[]
是最让我困惑的地方。和是分配给
Y
I
的最大值吗?

此函数取AS并沿AS的第二维度产生最大值。它返回最大值“Y”及其索引“I”。

根据

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

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

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

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

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

另外,
[C,I]=max(…)
表单提供了
C
中的最大值,以及
I
中的索引(即位置)

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

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

注意matlab约定中的明显褶皱;有许多具有签名的内置函数,如:

xs = sum(x,dim)
沿尺寸标注“工作”。最大值和最小值是oddbal例外:

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

有时我希望matlab有一个二进制max和一个折叠max,而不是将它们推到同一个函数中…

您可能需要根据自己的实际情况进行学习-我们都经常这样做-但我强烈建议您尽量少阅读所用函数的参考手册。只需键入“HelpMyFunction”,您将获得有关函数的第三十二篇入门文章。