2009-10-26 48 views
3

我刚开始使用matlab,需要快速完成这个程序,所以我没有时间去浏览所有的教程。MATLAB:什么是[Y,I] = max(AS,[],2);?

有人可以熟悉它,请解释下面的声明正在做什么。

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

[]2是什么主要是困惑我之间AS。是最大值分配给YI

+0

您可能必须通过座椅学习你的裤子 - 我们都会时不时的 - 但我强烈建议你最低限度阅读你正在使用的功能的参考手册。只需输入'help myfunction',你就可以得到一个关于你的功能的第三十二章引子。 – Kena 2009-10-27 21:14:54

回答

2

C = max(A,[],dim)返回沿着甲标量暗淡指定的尺寸的最大元素。例如,max(A,[],1)沿A的第一维(行)产生最大值。

此外,[C, I] = max(...)形式为您提供了最大值C,他们指数(即位置)在I

你为什么不尝试一个这样的例子?输入到MATLAB中,看看你得到了什么。它应该让事情变得更容易看到。

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

该函数取AS和沿AS的第二维生成最大值。它返回最大值'Y'和'I'的索引。

5

根据the reference manual

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

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

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

2

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

0

注意matlab约定中明显的皱纹;有一些内建的功能,这有这样的签名:

xs = sum(x,dim) 

这“沿着”的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和倒塌最大,而不是推搡他们到同样的功能...