views:

159

answers:

4

I seem to be stuck in Kafka-land, with a java.lang.String that I can't seem to use in MATLAB functions:

K>> name

name =

Jason

K>> sprintf('%s', name)
??? Error using ==> sprintf
Function is not defined for 'java.lang.String' inputs.

K>> ['my name is ' name]
??? Error using ==> horzcat
The following error occurred converting from char to opaque:
Error using ==> horzcat
Undefined function or method 'opaque' for input arguments of type 'char'.

how can I get a java.lang.String to convert to a regular MATLAB character array?

+3  A: 

never mind, I figured it out, you have to use the char() method explicitly:

K>> ['my name is ' char(name)]

ans =

my name is Jason
Jason S
+4  A: 

Matlab doesn't know how to work with anything but it's own structures.

Convert the string to a char:

cName = char(name);

James
A: 

str2mat(name) worked for me.

AVB
+2  A: 

As an alternative to using char() you can also use the java string methods. So

cName = name.toCharArray()'

Will return a MATLAB character array.

Adrian