How to use object array elements with sprintf?
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
ScottPT303
am 18 Jun. 2015
Kommentiert: ScottPT303
am 18 Jun. 2015
Hi, I'm having trouble getting sprintf to allow a string from an object property as an acceptable input.
I have a defined class that has a property 'name'. In another function I've used a loop to define 3 objects of that class into an object array called 'objArray'. I'd like to use sprintf to write a text command but I'm getting an error. I eventually want to write multiple commands with a for loop iterating over the 3 objects in objArray, but I can't figure out the syntax yet for event just the first element of the objArray...
Code:
cmd = sprintf('Object_name: %s',objArray(1).name)
Error:
Error using sprintf Function is not defined for 'cell' inputs.
I've also tried with {}...
Code:
cmd = sprintf('Object_name: %s',objArray(1).name)
Error:
Cell contents reference from a non-cell array object
Am I missing something about the sprintf syntax or should I be using a different function?
Thanks
0 Kommentare
Akzeptierte Antwort
Guillaume
am 18 Jun. 2015
It looks like the name property of your class does not contain a string but a cell array containing a string. You can check that with:
class(objArray(1).name)
I bet it says 'cell' instead of 'char', so either fix your property so it actually contains a string or simply extract the string from the cell with:
cmd = sprintf('Object_name: %s', objArray(1).name{1});
1 Kommentar
Weitere Antworten (1)
Walter Roberson
am 18 Jun. 2015
t = objArray(1).name;
cmd = sprintf('Object_name: %s', t{1});
0 Kommentare
Siehe auch
Kategorien
Mehr zu Cell Arrays finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!