[問題] 判斷句疑問~~已回收

看板MATLAB作者 (不務正業的人)時間16年前 (2009/08/10 11:39), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
現在在一個大迴圈裡的小動作是 每個小迴圈生成一個長度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
文章代碼(AID): #1AVvPXPU (MATLAB)
文章代碼(AID): #1AVvPXPU (MATLAB)