how to combine strings that are generated inside a function?

1 visualización (últimos 30 días)
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!

Respuesta aceptada

KSSV
KSSV el 22 de Jul. de 2020
function scrambled = royalscramble(str)
exchange = randperm(length(str));
scrambled = str(exchange) ;
end
  4 comentarios
Stephen23
Stephen23 el 22 de Jul. de 2020
"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 el 23 de Jul. de 2020
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 :)

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Startup and Shutdown en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by