Creating a Wordscramble using matlab
14 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
AJ Schmidt
am 21 Apr. 2020
Kommentiert: Stephen23
am 21 Apr. 2020
Hi, working on a review sheet (not for a grade), and I need to create a function that recieves a word and scrambles every letter except for the first and last letters of the word. I've already created a function that scrambles a word entirely in a previous problem, but I can't figure out how to rearrange it to leave the first and last letters unscrambled. Here's my function:
function outword =wordscramble(inword)
len = length(inword);
% Puts random index in the first element
indvec = zeros(1,len);
indvec(1) = randi([1 len]);
% Makes sure every index is only used one time
for i = 2:len
ran = randi([1 len]);
while any(indvec(1:i-1)== ran)
ran = randi([1,len]);
end
indvec(i) = ran;
end
outword = inword(indvec);
end
0 Kommentare
Akzeptierte Antwort
Ameer Hamza
am 21 Apr. 2020
Bearbeitet: Ameer Hamza
am 21 Apr. 2020
Try this
function outword = wordscramble(inword)
outword = inword;
n = numel(inword);
idx = randperm(n-2)+1;
outword(2:end-1) = outword(idx);
end
Example
>> wordscramble('A quick brown fox')
ans =
'Acqoouwb f r iknx'
5 Kommentare
Stephen23
am 21 Apr. 2020
You can create your own randperm by sorting any random vector of numbers:
>> str = 'A quick brown fox';
>> [~,idx] = sort(rand(1,numel(str)));
>> str(idx)
ans = uoqbio kAfwcx rn
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Data Type Identification 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!