Printing sentences using cell arrays
Mostrar comentarios más antiguos
Given: 3 names, 3 verbs, 3 nouns; how to initalize a cell array.
Find: I need to print random elements from each of the above terms in a cell array to make a sentence.
Issue: I can initialize the cell arrays, (I think), but I am struggling to print the sentences in the command window...
My Solution: I initialize a cell array of 1 row and 3 columns, but I'm struggling to figure out how to randomize and print them.
C=cell(1,3);
Names={'Harry','Xavier','Sue'};
Verbs={'loves','eats','throws'};
Nouns={'baseballs','rocks','pizza'};
% I tried creating a variable rand, and stating rand=rand(C(Names, Verbs,
% Nouns)) such that it filled the empty cell array with random elements
% from the names, verbs, and nouns and got the error !!!Unable to use a value of type cell as an index.
% I'd then I think use the fprintf function to display the value of C?
Respuesta aceptada
Más respuestas (1)
Here's a way to generate multiple random sentences at once:
Names={'Harry','Xavier','Sue','Howard','Fred'}; % adding two names and one noun
Verbs={'loves','eats','throws'}; % to show that these don't all
Nouns={'baseballs','rocks','pizza','iPads'}; % have to be the same length
% number of sentences to print:
N = 12;
C = [ ...
Names(randi(end,[1 N])); ...
Verbs(randi(end,[1 N])); ...
Nouns(randi(end,[1 N])); ...
]
fprintf('%s %s %s.\n',C{:})
And here's one way to generate all possible sentences of the specified form:
T = combinations(Names,Verbs,Nouns)
C = table2array(T).';
fprintf('%s %s %s.\n',C{:})
7 comentarios
Spaceman
el 15 de Abr. de 2024
Voss
el 15 de Abr. de 2024
"could I change N in your first example to 1?"
I think so. Why don't you try it and see what happens?
Spaceman
el 15 de Abr. de 2024
Voss
el 16 de Abr. de 2024
Perfect
Spaceman
el 16 de Abr. de 2024
Voss
el 16 de Abr. de 2024
You're welcome!
Spaceman
el 24 de Abr. de 2024
Categorías
Más información sobre Cell Arrays en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!