How do I do char2num (assume Ascii)?
조회 수: 9 (최근 30일)
이전 댓글 표시
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
채택된 답변
Stephen23
2024년 9월 24일
편집: Stephen23
2024년 9월 24일
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
Stephen23
2024년 9월 24일
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))
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Characters and Strings에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!