MATLAB Answers

Rand Function in MATLAB

13 views (last 30 days)
Aashita Galundia
Aashita Galundia on 30 Jan 2020
Commented: Aashita Galundia on 31 Jan 2020
I am very new to MATLAB. I'm trying to create trials using the rand function. I want four different rectangles on my figure to highlight at random.
Below is my code.
The figure is plotted with four rectangles, I want to highlight the four rectangles on random. Thanks!
%Create the figure for trial
t = figure
xlim([1 5])
ylim([1 5])
lower_l=rectangle('Position', [1.5 1.5 .5 .5]);
hold on
upper_l=rectangle('Position', [1.5 4 .5 .5]);
hold on
lower_r=rectangle('Position', [4 1.5 .5 .5]);
hold on
upper_r=rectangle('Position', [4 4 .5 .5]);
hold on
cross=text(3, 3, '+');
set(cross, 'fontsize', 20);**
%create condition without target
y = rand(lower_l, lower_r, upper_l, upper_r);
set(y, 'EdgeColor', 'r')
pause(0.1)
set(y, 'EdgeColor', 'k')
pause(0.3)
Appreciate any comments!

  0 Comments

Sign in to comment.

Answers (1)

Cris LaPierre
Cris LaPierre on 30 Jan 2020
Edited: Cris LaPierre on 30 Jan 2020
The random functions in MATLAB generate random numbers, not select a random value from a supplied vector.
What you could consider doing is creating a vector of the rectangle handles, and then randomly generate an index to extract one of them. That might look somethign like this
%create condition without target
y = [lower_l, lower_r, upper_l, upper_r];
idx = randi(length(y));
set(y(idx), 'EdgeColor', 'r')
pause(0.1)
set(y(idx), 'EdgeColor', 'k')
pause(0.3)

  1 Comment

Aashita Galundia
Aashita Galundia on 31 Jan 2020
Thanks, this was very helful!

Sign in to comment.

Sign in to answer this question.


Translated by