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 |