2009-10-26 44 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和倒塌最大,而不是推搡他們到同樣的功能...