MATLAB Answers

Transforming a string of letters into number based on each value equaling a number.

4 views (last 30 days)
tban
tban on 20 Sep 2017
Commented: Stephen Cobeldick on 20 Sep 2017
If there are a finite amount of variables available for a string like... a,b,c,d,e....z, and each value is numbered 1,2,3,4,5....26, how can I write a short code to take in a string of letters like "bccddee" and get an output of "2+3+3+4+4+5+5".
I can define each letter as a number, but the 1st problem I encounter is braking up the string into a finite amount of values (7) it contains and then using a loop to go trough them inside the string and add them to the total.
Anyone know how to do this or atleast can point me towards the direction of how I can get within a letter string and convert it to numbers which then i can add?

  0 Comments

Sign in to comment.

Answers (4)


tban
tban on 20 Sep 2017
Well, mystring is made out of letters and length is only used for numbers, No?

  0 Comments

Sign in to comment.


tban
tban on 20 Sep 2017
using this and it works, will let you know if i have any more questions
y=char('john') y =john >> length(y) ans = 4
char needs to be used.

  0 Comments

Sign in to comment.


tban
tban on 20 Sep 2017
mystring=char('word')
len=length(mystring)
w=23; o=15;r=18;d=4;
total = 0;
for i = 1:length(mystring)
if (mystring(i) == 'w')
total = total + w;
elseif (mystring(i) == 'o')
total = total + o;
elseif (mystring(i) == 'r')
total = total + r;
elseif (mystring(i) == 'd')
total = total + d;
end
end
this works

  1 Comment

John Chilleri
John Chilleri on 20 Sep 2017
Glad it's working, but I don't think you need to use char:
>> length('abcdef')
ans =
6
(works in my command window).

Sign in to comment.

Products


Translated by