How to convert decimals to Ascii characters?
108 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
John D'Errico
2022 年 9 月 30 日
編集済み: John D'Errico
2022 年 9 月 30 日
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 件のコメント
その他の回答 (1 件)
James Tursa
2022 年 9 月 30 日
編集済み: James Tursa
2022 年 9 月 30 日
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 件のコメント
参考
カテゴリ
Help Center および File Exchange で Data Type Conversion についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!