Printing a sentence using one random element from each cell array?

5 vues (au cours des 30 derniers jours)
Nora
Nora le 20 Oct 2013
Commenté : Walter Roberson le 20 Oct 2013
Question: Write a script that will initalize cell arrays and print sentences using one random element from each cell array (ex. 'Harry loves cats').
What I have so far is this:
names = {'Harry', 'Sarah', 'Sue'};
verbs = {'loves', 'likes'};
nouns = {'cats', 'dogs', 'zebras'};
for i=1:length(names)
fprintf('%s\n',i,names{i})
end
However, this only gives me the 'names' array.
How can I print a sentence using one random element from each cell array?

Réponse acceptée

Walter Roberson
Walter Roberson le 20 Oct 2013
Hint:
names{randi(length(names))}

Plus de réponses (1)

Image Analyst
Image Analyst le 20 Oct 2013
Modifié(e) : Image Analyst le 20 Oct 2013
Homework Hint: If your cells start out as sentences like 'Harry loves cats', use regexp() or strtok() to get the individual words, or simpler and better yet, use allwords: http://www.mathworks.com/matlabcentral/fileexchange/27184-allwords
But if your words are already extracted out like you showed in your test code, then just get 3 random integers using randi() and print all of them, not just names like you did
fprintf('%s %s %s\n', names{rand1}, verbs{rand2}, nouns{rand3});
  2 commentaires
Nora
Nora le 20 Oct 2013
The fprintf above doesn't work. MATLAB is saying that rand1 is unidentified?
Walter Roberson
Walter Roberson le 20 Oct 2013
Did you get three random integers using randi() ?

Connectez-vous pour commenter.

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by