Hi; I am going to attempt that question: 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. I have no idea how make such function? help me... Thanks

 채택된 답변

Andrei Bobrov
Andrei Bobrov 2015년 6월 4일
편집: Andrei Bobrov 2015년 6월 4일

1 개 추천

function out = funbyMuhammad(in_char)
abc = ['()+-_',setdiff('A':'Z','QZ')];
d = ['#*','0':'9',' '];
if all(ismember(in_char,[abc,d]))
ii = [' ',sprintf('%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 = funbyMuhammad('1 (FUN) DOG-4-YOU #2')
out = 1 386 364 4 968 #2
>>

댓글 수: 7

@Andrei Bobrov thanks for contributions.Please can you tell me what question ask from me? what it demand from me. i am actually unable to understand that question..again thanks
& please explain your code..
corrected
@Andrei gets that error:
Feedback: Your function performed correctly for argument(s) '1234567890'
Feedback: Your function performed correctly for argument(s) 'ABCDEFGHI'
Feedback: Your function performed correctly for argument(s) 'JKLMNOPRS'
Feedback: Your function performed correctly for argument(s) 'TUVWXY'
Feedback: Your function performed correctly for argument(s) '1-FUN DOG-4-YOU #2'
Feedback: Your function performed correctly for argument(s) '1-800-FLOWERS'
Feedback: Your function performed correctly for argument(s) 'A * IN OUR EYES'
Feedback: Your function made an error for argument(s) 'Q IS NOT ALLOWED'
Your solution is _not_ correct.
corrected 2
Muhammad Usman Saleem
Muhammad Usman Saleem 2015년 6월 4일
편집: Muhammad Usman Saleem 2015년 6월 4일
(y) for corrected 2 @ Andrei Bobrov thanks.............. :-D please mark some comments on funOnMatlab function so that i can understand this question batter....
Hi @Andrei Bobrov Could you please tell me if Q and Z are allowed in the exercise then how one can do it? such as number 7 'PQRS' and number 9 'WXYZ' and number 8 as rest will work.

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

추가 답변 (2개)

Jan Orwat
Jan Orwat 2015년 6월 4일
편집: Jan Orwat 2015년 6월 4일

0 개 추천

You can try regular expressions:
>> regexprep('1A23D4',{'A','D'},{'2','3'})
ans =
122334
liu yuhui
liu yuhui 2015년 12월 1일

0 개 추천

Thank you very much.

카테고리

도움말 센터File Exchange에서 MATLAB에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by