How do I retrieve individual elements from an object all at once?
2 ビュー (過去 30 日間)
古いコメントを表示
Hi all,
I have an Object where I'd like to retrieve all elements at once instead of through a loop.
My object is set up like this:
ObjArr
# Item one First Name
# Item two Last Name
Instead of using code like this...
for k = 1:n
tempSTR{k} = ObjArr(k).Name;
end
...I'd like to use something like the code below to quickly pull out a vector of data across all elements.
tempSTR{} = ObjArr.Name;
Please help.
Thanks,
jason
0 件のコメント
採用された回答
Sven
2012 年 7 月 13 日
編集済み: Sven
2012 年 7 月 13 日
If the contents of your object's field is numeric, you can make a matrix like this:
myNumVector = [Object.myNum];
To get a cell of non-numeric data such as strings (or a cell of anything, really), just use:
myVarCell = {Object.myVar};
Or, to use your code:
for k = 1:n
tempSTR{k} = ObjArr(k).Name;
end
... can be replaced with:
tempSTR = {ObjArr.Name};
2 件のコメント
Daniel Shub
2012 年 7 月 13 日
I think it should be
tempSTR = {ObjArr(1:n).Name};
Since we don't know how big ObjArris.
その他の回答 (1 件)
Daniel Shub
2012 年 7 月 13 日
Loren's blog has a post about OOP performance. Looping outside the object is slower than looping inside the method. You probably want to overload SUBSREF and get.Name to handle arrays.
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!