converting string code into numbers?

Write a function m-file called stringcode that takes a string as input and produces an array containing a code for each letter in the string with A = 0, B = 1, ..., Z = 25 and all other characters getting the value 26
Hints
  • Convert the string to all upper case (using the command upper).
  • Convert the string to an array of ascii codes (use double).
  • Loop through the array and change the codes to the right values. Look up the codes for ’A’ and ’Z’.
here is my code
function num = stringcode( word )
asc = double(upper(word))
if asc >= 33 & asc <=47 & asc < 0
asc = 26
else asc = double(upper(word))
end
% simple arithmetic
num = asc - double('A')
end
I cant get the special characters to come up as the number 26

4 Comments

Your input is a vector. asc is a vector. Your if is testing a vector. When you test a vector in if then it is only true if every value is true (non-zero).
Also there are no values that are both in the range 33 to 47 and less than 0 simultaneously.
Why don't you do this
num = double(upper(asc)- 'A') ;
num(num <0 || num > 25) = 26;
The homework requires that a loop be used.
Also, you need to use a single pipe character for an array, so that second line doesn't work.

Answers (0)

This question is closed.

Asked:

on 26 Jan 2020

Closed:

on 20 Aug 2021

Community Treasure Hunt

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

Start Hunting!