integers to English phrase

2 次查看(过去 30 天)
I am trying to create a function that converts double digits between 21 and 39 into its english phrase.
I think I have the beginning of the code that sets the integer parameter but I do not know what to do next. This is what I have so far:
function S = Convert_to_words(number)
ones = {'', 'One', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven', 'Eight', 'Nine'};
tens = {'', '', 'ERROR', 'Twenty', 'Thirty'};
end
  10 个评论
Britnie Casillas
Britnie Casillas 2019-11-16
wouldnt the tens_digits and one_digits be the same variables as the ones and tens? What do you mean derive them from number?
Stephen23
Stephen23 2019-11-16
"wouldnt the tens_digits and one_digits be the same variables as the ones and tens? "
No.
tens ans ones are cell arrays of character vectors.
tens_digits and one_digits should be numeric values of the digits in the given number (which by adding one to (because MATLAB indexing starts from one) can be used as indices into ones and tens).
"What do you mean derive them from number? "
You need to get the digits from number, as numeric values.

请先登录,再进行评论。

采纳的回答

Matt J
Matt J 2019-11-16
As a further hint, consider the following version, which is almost what you want
function S = convert_to_words(number)
ones= {'', 'One', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven', 'Eight', 'Nine'};
tens = {'','ERROR', 'Twenty-', 'Thirty-'};
tens_digit=3;
ones_digit=4;
S=[tens{tens_digit + 1}, ones{ones_digit + 1}];
end
It works very reliably on the number 34,
>> S=convert_to_words(34)
S =
'Thirty-Four'
Your job is to get it to work for everything else.
  2 个评论
Walter Roberson
Walter Roberson 2019-11-16
However 30 exactly is going to output something that ends in a hyphen when it shouldn't.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by