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