| MATLAB Function Reference | ![]() |
Syntax
B = subsref(A,S)
Description
B = subsref(A,S)
會被 A(i)、 A{i} 或 A.i 呼叫,而 A 是一個物件。 S 是一個結構陣列有著以下的欄位:
type: 為一個字串包含 '()'、 '{}' 、 '.'。 '()' 表示整數型態的下標, '{}' 表示異質陣列型態的下標, '.' 表示下標的欄位。subs: 為一個異質陣列或字串其包含真正的下標。Remarks
MATLAB 直譯器(interpreter)會用 subsref 來處理物件中,需要用到索引分配的情況。而我們並不建議您直接呼叫 subsref 。如果您直接用 subsref 的話,它將會按照正規的 MATLAB 規則分配,可能會產生並非我們想要的答案。
Examples
A(1:2,:)=B 會去呼叫 A=subsref(A,S) ,而 S 為一個 S.type='()' 和 S.subs = {1:2,':'} 的1-by-1 結構, 冒號 ":"當作一個下標傳入。
A{1:2}=B 會去呼叫 A=subsref(A,S),而 S.type='{}' 。
A{1:2}=B A.field=B 會去呼叫 subsref(A,S) ,而 S.type='.' 和 S.subs='field'。
這些簡單的呼叫可以很直觀地結合成更複雜的表示式,像 length(S) 也是屬於這一種情況。舉個例來說, A(1,2).name(3:5)=B 會去呼叫 A=subsref(A,S) ,而 S 是一個 3-by-1 結構陣列,並且有下列的這些值 :
|
|
|
|
|
|
See Also
See Handling Subscripted Reference for more information about overloaded methods and subsref.
| subspace | subvolume | ![]() |