Why are strings in a cellarray not interpreted as strings?

I'm sorry, but I'm sure this is a dumb question, so I ask your forgiveness in advance.
I have a cell array of strings. For example,
mystrings={'(2,3)(4,7)(5,9)', '(1,3)(4,9)'};
now I want to pass them, one at a time, to a function that takes a string argument. When I call
myfunction('(2,3)(4,7)(5,9)')
it works fine, but if I call
myfunction(mystrings(1))
it's not working because, aparently, mystrings(1) is not really a string, even though, when I type mystrings(1) on the matlab command line, the output is
'(2,3)(4,7)(5,9)'
Also, when I enter
isstr('(2,3)(4,6)(5,9)')
the answer is 1, but isstr(mystrings(1)) gives 0.
So what am I missing?
Thanks! -William

 Réponse acceptée

mystrings(1) returns a cell array.
mystrings{1} returns the actual contents of the cell array (in this case a string).
So you should do
myfunction(mystrings{1})

Plus de réponses (1)

James Tursa
James Tursa le 5 Mar 2011

1 vote

mystrings is a cell array, the elements of which are cells. The contents of the cells are strings. The ( ) syntax recovers the cell, the { } syntax (curly braces) recovers what is in the cell. e.g.,
mystrings(1) is a cell that is the first element of mystrings.
mystrings{1} is the contents of the above cell, and is a string.

1 commentaire

Thanks to you both for giving me such quick and helpful answers! -William

Connectez-vous pour commenter.

Catégories

En savoir plus sur Characters and Strings dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by