I need to insert a changing string into an input statement
12 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Kevin Hurley
el 13 de Jul. de 2022
Respondida: Walter Roberson
el 13 de Jul. de 2022
I am trying to iterate through all of the days of the week so that the input statement asks for 'Did the employee work on Monday of week 1' and then Tuesday and then Wednesday etc but sprintf and fprintf both dont work. Is there a funciton that allows you to put cells in a statement like that?
days = 'Monday Tuesday Wednesday Thursday Friday Saturday Sunday';
days = split(days);
for weeknum = 1:2
for daynum = 1:7
letter = input(sprintf('Did the employee work on %d of week %d (y/n): ',days(daynum),weeknum),'s');
0 comentarios
Respuesta aceptada
Walter Roberson
el 13 de Jul. de 2022
You were quite close, but you missed an indexing and got a format wrong
days = 'Monday Tuesday Wednesday Thursday Friday Saturday Sunday';
days = split(days);
for weeknum = 1:2
for daynum = 1:7
letter = input(sprintf('Did the employee work on %s of week %d (y/n): ', days{daynum}, weeknum),'s');
%stuff
end
end
But I would suggest
days = ["Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday" "Sunday"];
for weeknum = 1:2
for daynum = 1:length(days)
prompt = "Did the employee work on " + days(daynum) + " of week " + weeknum + " (y/n): ";
letter = input(prompt, 's');
%stuff
end
end
0 comentarios
Más respuestas (1)
Steven Lord
el 13 de Jul. de 2022
fprintf("You should use %%d to print integer values like: %d\n", 3)
fprintf("You should use %%s to print text like: %s\n", "hello")
fprintf("Using %%s to print integer values may not do what you expect: %s\n", 65)
fprintf("Using %%d to print text data also may not do what you expect: %d\n", 'hello')
char(65)
double('hello')
0 comentarios
Ver también
Categorías
Más información sobre Cell Arrays 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!