How do I do char2num (assume Ascii)?
9 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Gavin
el 24 de Sept. de 2024
Comentada: Stephen23
el 24 de Sept. de 2024
num2 char is easy enough num = char(122) returns 'z' ; but how can I get back to the ascii value from a char?
Do I really have to do all this:
val = unicode2native(ch(1:1),'US-ASCII');
I suppose I can make
function val = char2num(ch) % return a single ascii value
if ischar(ch) || isstring(ch)
val = unicode2native(ch(1:1),'US-ASCII');
val = val(1:1); % because if it's a string ch(1:1) is the first string not the char
else % it's already a number?
ch = mod(ch,256); % Too big? take LSB
% oddly ML mod() allows fractions so ...
val = uint8(ch); % round if needed
end
But surely there is a built in function that I just can't find
0 comentarios
Respuesta aceptada
Stephen23
el 24 de Sept. de 2024
Editada: Stephen23
el 24 de Sept. de 2024
txt = char(120:122)
num = double(txt)
If you have a container array (e.g. cell array or string array) then of course you will need to use a loop or CELLFUN/ARRAYFUN or something of that nature. For a scalar string array you could simply access its content using curly braces:
str = "xyz";
vec = double(str{1})
3 comentarios
Stephen23
el 24 de Sept. de 2024
txt = char(120:122)
num = uint8(txt)
You can add CHAR if you want it to work with both character arrays and scalar strings:
num = uint8(char(txt))
Más respuestas (0)
Ver también
Categorías
Más información sobre Characters and Strings en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!