how to combine strings that are generated inside a function?

1 次查看(过去 30 天)
Hi, I have this code that must randomly scramble the letters of the string input and return the result as a whole word. However, this returns the letters one by one.
function royalscramble(str)
exchange = randperm(length(str));
for i=1:length(str)
str(exchange(i))
end
end
I tried additions to the code and it worked. Here it is.
function scrambled = royalscramble(str)
exchange = randperm(length(str));
scrambled = '';
for i=1:length(str)
scrambled = str(exchange(i));
end
end
However, the function must not be called like that. I mean, it should not have scrambled =
It should be like this and returns this kind of result:
>> royalscramble('fantastic')
ans =
safntcait
>> royalscramble ('hello')
ans =
hleol
What should I add/replace from my first code? Thanks!

采纳的回答

KSSV
KSSV 2020-7-22
function scrambled = royalscramble(str)
exchange = randperm(length(str));
scrambled = str(exchange) ;
end
  4 个评论
Stephen23
Stephen23 2020-7-22
"but I need a function that doesn't need "scrambled=" to be called... Is that possible?"
It is not required to call a function with an output argument:
But if you want any value returned, you will have to declar an output argument:
Roxanne Esguerra
Roxanne Esguerra 2020-7-23
Thanks! I found my mistake. I have always called the function without putting '--' in the string. That's why it didn't work and resulted to this.
>> royalscramble(fantastic)
Unrecognized function or variable 'fantastic'.
>> scrambled = royalscramble(fantastic)
Unrecognized function or variable 'fantastic'.
Thank you so much :)

请先登录,再进行评论。

更多回答(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