Choose a random button from a set of 9 arranged in a 3x3?

app.FirstNumber.Text = num2str(app.First_Number);
app.SecondNumber.Text = num2str(app.Second_Number);
app.Operator.Text = "+";
Answer = app.First_Number + app.Second_Number; % Operator needs to be able to change
n = randi(9);
app.Button_(n).Text = num2str(Answer); % Button needs to move to a random button_(1-9)
Essentially im trying to make a random button become the correct answer, but i keep getting an error message of Button_ is not a recodnized method or property.

Answers (1)

Use this syntax:
button_name = sprintf('Button_%d',n);
app.(button_name).Text = num2str(Answer);

1 Comment

And to be able to change the operator, you can do something like this:
operator_lookup = { ...
"+", @plus; ...
"-", @minus; ...
"*", @times; ... actually element-wise multiplication, .*
"/", @rdivide; ... element-wise division, ./
};
idx = find([operator_lookup{:,1}] == string(app.Operator.Text), 1);
if isempty(idx)
error('Invalid operator')
end
Answer = operator_lookup{idx,2}(app.First_Number,app.Second_Number);
References:

Sign in to comment.

Categories

Products

Release

R2024a

Asked:

on 21 Apr 2024

Commented:

on 21 Apr 2024

Community Treasure Hunt

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

Start Hunting!