How do I do char2num (assume Ascii)?
13 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposta accettata
Stephen23
il 24 Set 2024
Modificato: Stephen23
il 24 Set 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 Commenti
Stephen23
il 24 Set 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))
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Characters and Strings in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!