create multiple figures of patches with random colors
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Declan Bourke
am 27 Jun. 2016
Kommentiert: Lina KORONFEL
am 7 Jul. 2020
I'm trying to create a number of patches with different colors using a random number function and all of the regular colors in MATLAB (i.e. g,r,b etc). I'm using a 'for' loop and assigning a new color to the patch each time but for some reason the script returns patches with the same color every time. The section of scripts i'm using now is:
for i=1:12
figure
col_list='ymcrgbk';
col=randi([1,7],1);
random_color=col_list(col);
patch_x=[0 2 2 0]
patch_y=[0 0 2 2]
final_color=['-' random_color]
patch(patch_x,patch_y,'final_color');
end
2 Kommentare
Stephen23
am 27 Jun. 2016
Bearbeitet: Stephen23
am 27 Jun. 2016
Note that operations which do not depend on the loop variable should be moved outside of the loop. For example it would be much more efficient to call randi just once before the loop rather than multiple times inside the loop.
Also note that using i or j as the loop variable is not recommended as it is the name of the inbuilt imaginary unit.
See my answer for a more efficient way of writing a loop like this.
Akzeptierte Antwort
Weitere Antworten (1)
KSSV
am 27 Jun. 2016
clc; clear all ;
for i=1:12
figure
col_list='ymcrgbk';
col=randi([1,7],1);
random_color=col_list(col) ;
patch_x=[0 2 2 0] ;
patch_y=[0 0 2 2] ;
final_color=['-' random_color] ;
patch(patch_x,patch_y,random_color);
end
Siehe auch
Kategorien
Mehr zu Surface and Mesh Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!