How to convert decimals to Ascii characters?
106 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Jefe
am 30 Sep. 2022
Bearbeitet: James Tursa
am 30 Sep. 2022
So I have a char with a bunch of decimals in each line, these decimals go from 0 to 63. I'm trying to convert these decimals to the one that represents it in the image below. So 0 should be changed to A, 1 should be changed to B and so on. Anyone know if there are some functions to make this easier?
0 Kommentare
Akzeptierte Antwort
John D'Errico
am 30 Sep. 2022
Bearbeitet: John D'Errico
am 30 Sep. 2022
The ascii encoding is not what you are asking to find, since this produces a different result.
D = 0:63;
char(D + 'A')
However, nothing stops you from using a simple lookup table.
CharLut = ['A':'Z','a':'z','0':'9','+/']
Now you can evaluate any set of integers through that lut.
N = randi(63,[1,50])
CharLut(N+1)
Dont forget that MATLAB uses a 1 index origin, so you need to add 1.
0 Kommentare
Weitere Antworten (1)
James Tursa
am 30 Sep. 2022
Bearbeitet: James Tursa
am 30 Sep. 2022
Your table isn't ASCII encoding of characters, so you can't use simple functions such as double( ) etc. You are probably going to have to write your own conversion function. I would suggest looking at the ismember( ) function using the 2nd Locb output. E.g. start with this char string:
S = ['A':'Z','a':'z','0':'9','+','/']
Then you can use this for mapping back & forth between the numbers and the characters, offsetting the index by 1. E.g.,
c = 'THEstring'
[~,N] = ismember(c,S); % From char string to numbers
x = N-1 % Offset by 1
C = S(x+1) % From numbers back to char string, offset by 1
It would also help if you provided example inputs and desired outputs in your question so we know exactly what you want.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!