[問題] 判斷句疑問~~已回收
現在在一個大迴圈裡的小動作是
每個小迴圈生成一個長度100的數列
但這數列有條件限制
就是1, 2, 3這三個元素出現次數都要大於1
如果數列不符上列條件
我就要重新生成一個符合的數列執行下面的動作
請問這樣的判斷句要怎麼寫><
我先貼一下的我的拙作 請各位不吝指教了 謝謝!
code:
for m = 1:R
x = zeros(1,100);
N = zeros(3);
n = zeros(3,1);
x(1) = binornd(2, rand)+1; %%數列第1項
for i = 2:100 %%開始生成第2項到第100項
pp = rand; %%以下是生成方式
if (pp<P(x(i-1),1))
x(i) = 1;
end
if ((pp<P(x(i-1),2)+P(x(i-1),1))&(pp>P(x(i-1),1)))
x(i) = 2;
elseif (pp>P(x(i-1),2)+P(x(i-1),1))
x(i) = 3;
end
end
n(1) = sum(x==ones(1,100)); %%生成完畢開始數1 2 3的個數
n(2) = sum(x==repmat(2,1,100));
n(3) = sum(x==repmat(3,1,100));
for j = 1:3 ***重點來了...
if n(j)==0 若n(j) == 0 則該數列不要
break 要重新生成一個新數列
end 直到n(1), n(2), n(3)都不為0
end ps.我這裡是亂寫@@
end
for i = 1:99 %%生為數列後的動作...
if (x(i) == 1)&(x(i+1) == 1)
N(1,1) = N(1,1)+1;...............
大致是這樣 希望我的問題有人看得懂
重點就在於***的修改了
請各位幫忙 謝謝~~~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.114.208
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章