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

2 ビュー (過去 30 日間)
tban 2017 年 9 月 20 日
コメント済み: Stephen23 2017 年 9 月 20 日
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?

回答 (4 件)

José-Luis 2017 年 9 月 20 日
str = 'bccddee';
result = sum(str - 'a' + 1)
  1 件のコメント
Stephen23 2017 年 9 月 20 日
+1 nice and simple. Why waste time writing anything else?


tban 2017 年 9 月 20 日
Well, mystring is made out of letters and length is only used for numbers, No?

tban 2017 年 9 月 20 日
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.

tban 2017 年 9 月 20 日
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;
this works
  1 件のコメント
John Chilleri
John Chilleri 2017 年 9 月 20 日
Glad it's working, but I don't think you need to use char:
>> length('abcdef')
ans =
(works in my command window).




Community Treasure Hunt

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

Start Hunting!

Translated by