Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MATLAB: dealing with java.lang.String

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?

like image 358
Jason S Avatar asked Mar 22 '10 13:03

Jason S


3 Answers

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

Convert the string to a char:

cName = char(name);

like image 52
Jay Avatar answered Oct 23 '22 11:10

Jay


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

cName = name.toCharArray()'

Will return a MATLAB character array.

like image 27
Adrian Avatar answered Oct 23 '22 10:10

Adrian


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
like image 4
Jason S Avatar answered Oct 23 '22 12:10

Jason S