Match numbers with letters

조회 수: 7(최근 30일)
Pax Azx
Pax Azx 2021년 1월 29일
댓글: Mathieu NOE 2021년 2월 1일
I need to find the name score of the names in a text file.
name point: David --> 4 1 22 9 4 = 4+1+22+9+4 = 40
Thanks for your help.
  댓글 수: 2
Philippe Lebel
Philippe Lebel 2021년 1월 29일
as there are many solutions posted that answer your question, i'd suggest to mark your question as answered.

댓글을 달려면 로그인하십시오.

채택된 답변

Mathieu NOE
Mathieu NOE 2021년 1월 29일
this code does the trick :
ascii_value = uint32(yourstring); % convert your char / string into corresponding ASCII value
% let's converts ASCII values into values ranging from 1 to 26 (use offsets)
% uppercase letters
ind = find(ascii_value<91);
UL = ascii_value(ind) - 64;
% lowercase letters
ind = find(ascii_value>96);
LL = ascii_value(ind) - 96;
value = sum(UL) + sum(LL); %
  댓글 수: 4
Pax Azx
Pax Azx 2021년 1월 29일
I wrote to you. Thank you if you help.

댓글을 달려면 로그인하십시오.

추가 답변(2개)

Jan 2021년 1월 29일
편집: Jan 2021년 1월 31일
Name = 'David';
Num = lower(Name) - 'a' + 1; % 'a' -> 1, 'b' -> 2, ...
Score = sum(Num);
[EDITED] You mention in comments, that you want to do this for "names in a text file". Do the files contain one name per line?
Str = fileread('YourTextFile.txt');
Str(Str == char(13)) = [];
CStr = strsplit(Str, char(10));
Score = zeros(size(CStr));
for k = 1:numel(CStr)
Score(k) = sum(lower(CStr{k}) - 'a' + 1);
  댓글 수: 4
Mathieu NOE
Mathieu NOE 2021년 2월 1일
@Jan : tx for your nice comments , but I'm not yet to your level - still I like to see how tricky problems can be solved elegantly by knowledgable people like you and others contributors here.

댓글을 달려면 로그인하십시오.

Philippe Lebel
Philippe Lebel 2021년 1월 29일
im late to the show, but here we go anyway...
name = 'david';
a = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
total = 0;
for i=1:length(name)
arr = cellfun(@(x)isequal(x,name(i)),a);
[row,col] = find(arr);
total = total + col

Community Treasure Hunt

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

Start Hunting!

Translated by