MATLAB Answers

how to simplify multi- if statement

2 views (last 30 days)
Qian
Qian on 6 Dec 2012
I'm trying to do the following work, given a string of 'ABCDE' etc,
for each letter, it will be assigned with a unique number.
How would I do it without putting 26 if and else if statement in a simple way?
I'm thinking of two matrices. But it may not be on the right track. Can anyone help with this case? Thanx in advance!
  1 Comment
Qian
Qian on 6 Dec 2012
sorry for the bad description. I'm saying, the assignments between letters and numbers are given, what I want is to replace letter with numbers in the given way. The only method I was using is the if and else if statement with one-to-one assignment, but with longer string of letters, I don't really like to put 26 statement, is there any quicker way?

Sign in to comment.

Accepted Answer

Matt Fig
Matt Fig on 6 Dec 2012
Edited: Matt Fig on 6 Dec 2012
STR = char(65:90)
KEY = randi(10000,1,length(STR))
But what are you going to do with these that you would need an IF block for? Are you going to do something like encode a given string?
g_str = upper('Hello')
k_str = KEY(g_str-64)
  8 Comments
Jos (10584)
Jos (10584) on 6 Dec 2012
Using randi, it is not guaranteed that each character in STR is mapped onto a unique value ...

Sign in to comment.

More Answers (1)

Rick Rosson
Rick Rosson on 6 Dec 2012
aStr = 'ABCDE';
x = uint8(aStr) - 64;
  1 Comment
Qian
Qian on 6 Dec 2012
thanx for that, but the problem is ABCDE are not assigned to patterned numbers, but some random numbers, for instance A=14, B=23, C=1, D=4,E=34 etc.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by