Is {} used as index array in class?

5 ビュー (過去 30 日間)
Thang Nguyen
Thang Nguyen 2013 年 1 月 16 日
Hi, While I am studying Matlab object oriented I found this example and I want to confirm it.
I have a constructor:
function obj = DocPortfolio(name,varargin)
if nargin > 0
obj.name = name;
for k = 1:length(varargin)
obj.indAssets{k} = varargin(k);
assetValue = obj.indAssets{k}{1}.currentValue;
obj.totalValue = obj.totalValue + assetValue;
end
end
end
indAssets is an array property. Is it true that obj.indAssets{k} is a way to index into this array? Cause I have never use {} to index array before. And what is obj.indAssets{k}{1} in next line?
Thanks!

採用された回答

Cedric
Cedric 2013 年 1 月 16 日
編集済み: Cedric 2013 年 1 月 16 日
Your question is not related to OOP. Look at the following:
>> c = {5, {'Hello', 'World'}, struct( 'a', 8, 'b', 9 )} ;
c = [5] {1x2 cell} [1x1 struct]
Here, c is a cell array (an array of cells).
>> class( c )
ans = cell
You can index blocks of this cell array using ()-type indexing.
>> c(1:2)
ans = [5] {1x2 cell}
>> c(1)
ans = [5]
The latter is the first element of the cell array c, which is a cell in itself.
>> class( c(1) )
ans = cell
For extracting the content of this cell, you have to use {}-type indexing.
>> c{1}
ans = 5
This time it (the content) is the double 5.
>> class( c{1} )
ans = double
Now indexing can be "nested"; c{2} is the content of cell #2 of the cell array c. This content is a cell array in itself, that you can again index with both () and {} whether you want cells or their content.
>> c{2}
ans = 'Hello' 'World'
>> class( c{2}(1) )
ans = cell
>> class( c{2}{1} )
ans = char
Or when the content is a struct..
>> class( c{3} )
ans = struct
>> c{3}.a
ans = 8
Hope it helps,
Cedric
  2 件のコメント
Thang Nguyen
Thang Nguyen 2013 年 1 月 16 日
Thanks Cedric for spending time to answer my question. I highly appreciate your help!
Cedric
Cedric 2013 年 1 月 16 日
You are most welcome! Please accept the Answer if it answers your question.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeFunctions についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by