Borrar filtros
Borrar filtros

A bug of build-in function Char?

1 visualización (últimos 30 días)
yang
yang el 20 de Dic. de 2012
Well, I have a double array readed from a binary file, such as X=[66 43 22 0 67],
When I convert the array into string, char(X), the ans is 'B+! C'
I think that the function Char() should take [0] as the ending of a string, why it treat zero also as a part of string?

Respuesta aceptada

Jonathan Sullivan
Jonathan Sullivan el 20 de Dic. de 2012
This is where MATLAB differs from C. C will assume that 0 is the end of the string. MATLAB has explicit start and end points of the array.
If you want that functionality, you'll have to do something like:
X = [66 43 22 0 67];
char(X(1:find(X == 0,1)))

Más respuestas (2)

yang
yang el 20 de Dic. de 2012
Ok, fine, thanks.

Walter Roberson
Walter Roberson el 21 de Dic. de 2012
sprintf('%s', char(X))
sprintf() has an undocumented effect (some would say it is a bug) of ending at the first binary 0.

Categorías

Más información sobre Characters and Strings en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by