Filter löschen
Filter löschen

Write a function that will receive a character and a positive integer n. It will create and return a cell array with strings of increasing lengths, from 1 to the integer n. It will build the strings with successive characters

2 Ansichten (letzte 30 Tage)
Write a function buildstr that will receive a character and a positive integer n. It will create and return a cell array with strings of increasing lengths, from 1 to the integer n. It will build the strings with successive characters in the ASCII encoding. >> buildstr('a',4) ans = 'a' 'ab' 'abc' 'abcd'

Antworten (2)

Eeshan Mitra
Eeshan Mitra am 29 Sep. 2017
You could use the MATLAB functions "double" and "char" for this purpose.
Assuming you have already gotten the function to read the inputs, lets say buildstr('a',3), then for the character 'a':
>> double('a')
ans =
97
would yield the ASCII code for the character. You can write your logic and subsequently use the function "char" to convert an ASCII code back to a character. For example:
>> char(double('b') + 1)
ans =
'c'
Of course in your case, you will need to compensate for edge-cases, like what would you expect when you enter:
buildstr('y',5)

Akira Agata
Akira Agata am 29 Sep. 2017
The function becomes like this. Please note that the following sample script is very basic one. So, some exception handling process should be added for practical use.
function output = buildstr(str, num)
list = 'abcdefghijklmnopqrstuvwxyz';
idx = strfind(list,str);
output = arrayfun(@(x) list(idx:idx+x-1), [1:num],'UniformOutput',false);
end
  4 Kommentare
Stephen23
Stephen23 am 1 Okt. 2017
@Raman Sah: of course you can do this without arrayfun. Anything that can be done with arrayfun or cellfun can also be done with a loop.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu MATLAB finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by