Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

MATLAB Each number on older telephone keypads, except 0 and 1, corresponds to th

ID: 3767207 • Letter: M

Question

MATLAB

Each number on older telephone keypads, except 0 and 1, corresponds to three uppercase letters as shown in this list:

2 ABC, 3 DEF, 4 GHI, 5 JKL, 6 MNO, 7 PRS, 8 TUV, 9 WXY

A phone-number specification can include uppercase letters other than Q and Z, digits, the # and * signs, spaces, parentheses and dashes. Write a function called dial that takes as its input argument a string of any length that includes only these characters and returns as its output argument a string containing the corresponding telephone number with only digits, spaces, and the # and * signs. Specifically, it does not change the digits, the # and * signs, or the spaces, but it replaces each parenthesis with a space and each dash with a space, and it converts each uppercase letter to a digit according to the list shown above. Here is the input and output for one example of a call of the function:

Input:          '1 (FUN) DOG-4-YOU #2'

Output:      '1 386 364 4 968 #2'

Note that in this example there are three spaces in the input string and seven spaces in the output string. If the input does not meet the phone-number specification given above, the function returns an empty array. You are not allowed to use the built-in function strrep.

Explanation / Answer

function out = dial(in_char)

abc = [‘ () +-_’ , setdiff(‘A’:’Z’,’QZ’)];

d=[‘#*’, ‘0’:’9’, ‘ ‘];

if all(ismember(in_char, [abc,d]))

ii=[‘        ‘,sprint(‘%d’, kron(2:9,[1 1 1]))];

[lo,idx] = ismember(in_char, abc);

out= in_char;

out(lo) = ii(idx(lo));

else

out =[ ];

end

end

using

>> out = dial (‘1 (FUN) DOG-4-YOU #2’)

out = 1 386 364 4 968 #2

>>