How to use object array elements with sprintf?

조회 수: 2 (최근 30일)
ScottPT303
ScottPT303 2015년 6월 18일
댓글: ScottPT303 2015년 6월 18일
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

채택된 답변

Guillaume
Guillaume 2015년 6월 18일
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
ScottPT303
ScottPT303 2015년 6월 18일
Thank you for the response! I did check the class. Since it is an object array then
class(objArray(1).name)
results in the name of the class (not the property 'name', unintended confusion). Your recommendation using thisObjArray(1).name{1} works! In this case I am actually calling the 'char' within the cell as you said. Thank you for the help!

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Walter Roberson
Walter Roberson 2015년 6월 18일
t = objArray(1).name;
cmd = sprintf('Object_name: %s', t{1});

카테고리

Help CenterFile Exchange에서 Whos에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by