我只是在矩陣的特定列上使用max
函數,語法讓我想知道:Matlab:max(A,[],dim)中的第二個參數是什麼意思?
作爲第二個參數傳遞的這個空矩陣是什麼意思?
max(A,[],dim)
我知道這可能是將它與max(A,i)
分開做比較。但是,爲什麼一個空矩陣?
它有一定的意義嗎?這種用於其他功能的參數是這樣嗎?
我只是在矩陣的特定列上使用max
函數,語法讓我想知道:Matlab:max(A,[],dim)中的第二個參數是什麼意思?
作爲第二個參數傳遞的這個空矩陣是什麼意思?
max(A,[],dim)
我知道這可能是將它與max(A,i)
分開做比較。但是,爲什麼一個空矩陣?
它有一定的意義嗎?這種用於其他功能的參數是這樣嗎?
其實,你的猜測是正確的。由於Matlab不是強類型語言,並且沒有經典的函數重載技術,函數必須根據上下文猜測參數的含義。 Mathworks希望將單個矩陣中的最大值和單個函數中的兩個數組中的最大值合併。
因此他們需要以某種方式分開這些情況。他們使用空矩陣[]
作爲佔位符。否則,他們將無法分開案件max(A, dim)
和max(A, B)
。他們本可以使用任何特殊變量,但是[]
是基本構造。
max
函數默認進行值對比較。輸入max(1,2)
顯然會輸出2
。作爲另一個例子,使用max(x,0)
是執行x
的半波整流的簡便方式,將x
的每個值與0
的單值進行比較。爲了將單個矩陣的元素與該矩陣中包含的值進行比較,可以將第二個參數指定爲空矩陣[]
。這作爲函數的標誌來比較一個矩陣內的值。
在整個文檔中,您會看到許多Matlab函數都使用空值[]
。這通常表示要使用默認值,或者更改該功能的操作模式。
還沒有測試過這個,但是現在可以跳過'〜'來跳過最近Matlab版本中的輸入和輸出參數。我想通常的解決方案最終會變成:'max(A,〜,dim)' –
@ DennisJaheruddin,我不知道'〜'。謝謝(你的)信息。目前,我測試了它,'[]'不能用'〜'替換(至少在本例中不是這樣)。 – Mahm00d
當我們調用一個函數時,我不相信'〜'可以作爲輸入參數的佔位符。只在argouts列表中。作爲一個輸入arg,它只能在函數定義的參數列表(即'foo.m'的第一行)中作爲一種說法「這個函數實現忽略了這個參數,不管調用者傳入什麼」 。 –