필터 지우기
필터 지우기

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

조회 수: 2 (최근 30일)
Nora
Nora 2013년 10월 20일
댓글: Walter Roberson 2013년 10월 20일
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?

채택된 답변

Walter Roberson
Walter Roberson 2013년 10월 20일
Hint:
names{randi(length(names))}

추가 답변 (1개)

Image Analyst
Image Analyst 2013년 10월 20일
편집: Image Analyst 2013년 10월 20일
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
Nora
Nora 2013년 10월 20일
The fprintf above doesn't work. MATLAB is saying that rand1 is unidentified?
Walter Roberson
Walter Roberson 2013년 10월 20일
Did you get three random integers using randi() ?

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Characters and Strings에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by