Displaying randomized texts in app designer (GUI)
4 次查看(过去 30 天)
显示 更早的评论
Hello, If you look in the comments. I have also attached my code and a screen shot of what the GUI currently looks like.
I have made an editfield, with different examples of what the text should look like, but the only thing appearing on that tab is the list box. it should be a randomization(from the text i have included in the code) for what text is displayed.
2:
How would i connect the values from the listbox to the actual text (There will be 4 text in total, i am using the randperm to randomize which one is dispalyed on GUI, but only one of those is the correct answer).
I stated that i already have a list box with "YES" and "NO". 3 of the text will always be wrong so the answer should always be NO and 1 will always be right, so the answer should always be YES.
What i am trying to say is ' if the wrong text is displayed and the user anwsers "YES" instead of "NO". How do i tag that as incorrect answer? and vice versa.
I have also attached my code.
Thanks in Advance.
6 个评论
Jiri Hajek
2022-11-29
Your question is not so much about MATLAB, but about an algorithm. There are a great mant ways to do what you want. Starting from where you are, you could perhaps make use of the following MATLAB functions to achieve your goal:
- callback function on your answers, where you could check the user;s choice
- in that callback, you can use the isequal function to compare the displayed string with the correct answer
- Display the answer by assigning a value to the text property of an answering text field
回答(1 个)
Divyanshu
2023-2-23
The possible workaround for the issue faced is you can have an edit field which indicates “correct” or “incorrect” to the App-user depending upon the response. And you can “disable” or “enable” the Next button depending upon the value of response indicating field.
Here is a demo App which demonstrates the same->
Note: I have written logic which is going to randomly display one of the three sentences -> [“How are you?", "Hi Jane", "Please call me”].
And the correct response is -> “Hi Jane”
Here is the code-view of the demo App->
methods (Access = private)
% Code that executes after component creation
function startFunctn(app)
sentenceList = ["How are you?" "Hi Jane" "Please call me"];
index = randi(3);
app.SentencementioneintheAudioyoujustheardTextArea.Value = sentenceList(index);
set(app.NextButton,'Enable','off');
app.check();
end
% Value changed function: ListBox
function check(app, event)
app.StatusofyourResponseEditField.Value = "";
value = app.ListBox.Value;
if(value == "Yes" && app.SentencementioneintheAudioyoujustheardTextArea.Value == "Hi Jane")
app.StatusofyourResponseEditField.Value = "Correct";
elseif(value == "No" && app.SentencementioneintheAudioyoujustheardTextArea.Value ~= "Hi Jane")
app.StatusofyourResponseEditField.Value = "Correct";
else
app.StatusofyourResponseEditField.Value = "Incorrect";
end
if(app.StatusofyourResponseEditField.Value == "Correct")
set(app.NextButton,'Enable','on');
else
set(app.NextButton,'Enable','off');
end
end
end
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!