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에서 Graphics Object Programming에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!