2016-04-15 3 views
0

, если у меня есть матрица из трех столбцов и 6 строк, столбцы представляют координаты {x, y} центра круга, а третье - это (z), которые представляют собой график или нет для построения центра {z} генерируется с использованием rand operater как нулевого или одного . Я хочу, чтобы не строить график {x, y}, когда их {z} равно нулю, но число из них должно быть всегда больше 3, могу ли я сделать это я попробовал этотКак я могу контролировать количество построенных кругов

limit=6; 
for i=1:raw 
xy(i,1)=round(rand*(limit)); 
xy(i,2)=round(rand*(limit)); 
xy(i,3)=round(rand)*1; 
if((xy(i,3)==1)>=3) 
if(xy(i,3)==0); 
xy(i,1)=inf; 
xy(i,2)=inf; 
end 

конец конец

+0

именно то, что я хочу –

ответ

0

Вместо петли и случайная генерация триггера:

xy(ii,3)=round(rand); 

вы можете использовать:

xy=round(rand(limit,3));   %% Create limit x 3 random matrix 
Ones=[ones(3,1);zeros(limit-3,1)]; %% Create column vector of [1;1;1;0;...;0] 
Indices=randperm(limit);   %% Create random permutation of indices 
xy(:,3)=Ones(Indices);    %% Shuffle Ones vector by randomly and assign it to 3rd column assigned Indices 
xy(find(xy(:,3)==0),1:2)=inf;  %% Assign NaN value to rows where xy(ii,3)==0 
+0

спасибо очень много, но то, что о состоянии только если число единиц больше, чем 39 идут и чанг значения –

+0

Прошу прощения, я не понимаю вопроса. Если вы хотите нарисовать 39 точек, используйте вместо них (39,1). Но забота о переполнении индекса! – Crowley

Смежные вопросы