How do I retrieve individual elements from an object all at once?
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposta accettata
Sven
il 13 Lug 2012
Modificato: Sven
il 13 Lug 2012
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 Commenti
Daniel Shub
il 13 Lug 2012
I think it should be
tempSTR = {ObjArr(1:n).Name};
Since we don't know how big ObjArris.
Più risposte (1)
Daniel Shub
il 13 Lug 2012
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 Commenti
Vedere anche
Categorie
Scopri di più su Loops and Conditional Statements in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!