Rand Function in MATLAB

2 次查看(过去 30 天)
Aashita Galundia
Aashita Galundia 2020-1-30
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!

回答(1 个)

Cris LaPierre
Cris LaPierre 2020-1-30
编辑:Cris LaPierre 2020-1-30
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)

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by