2016-04-15 18 views
0

如果我有三列和六行的矩陣,列表示圓的中心的{x,y}座標,第三個是表示繪圖的(z)值繪製中心 {z}是使用rand操作器生成的零或一個 我不想在{z,z}爲零時繪製{x,y},但其數量必須總是大於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