[爆卦]巢狀結構是什麼?優點缺點精華區懶人包

為什麼這篇巢狀結構鄉民發文收入到精華區:因為在巢狀結構這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者JACK19920102 ()看板MATLAB標題[討論] for迴圈中有點複雜的巢狀結構......

巢狀結構 在 美食醜醜·李波 Instagram 的最佳貼文

2021-09-16 02:00:58

|可為烘焙| #可為生活帶來一些不同的甜 ⠀⠀⠀⠀⠀ · 原味可麗露 / 45元 · 威士忌可麗露 / 55元 ⠀⠀⠀⠀⠀ 外層酥脆,裏頭有著蜂巢狀結構的可麗露 擠入威士忌後靜置,完成一顆酒氣濃郁的療癒甜點 清新香醇的威士忌帶點麥香,填充每個孔隙 尾韻是威士忌與可麗露相互平衡的獨特氣息 除了平常熟悉...



程式目的敘述如下

目前有20個變數 是20個不同的機台要排序

每種排序 會用適應函數算出一個數值(OFV) 越小越好

現在要做區域搜尋

位置1跟位置2的機台交換位子 看看OFV有沒有比較小

如果沒有 換回來 往下輪到位置2跟3交換 看看OFV有沒有比較小

如果為置1跟2的機台交換後 OFV值比較小

則保留交換 從頭開始再做一次

1跟2交換 看有沒有OFV比較小

有比較小就保留交換 從頭開始做

沒有比較小就換回來 換下面兩個位置交換

--

目前用for 迴圈寫

假設發現機台交換位置後有比較小

則要保留交換 然後從頭開始再做交換

我目前用方法是在迴圈裡面 去改最外面迴圈的計數值

是可以正常跑 但我不太確定這樣的方法是不是符合邏輯

想請板上大大幫忙看一下有沒有錯

或是有更好的寫法 可以提供

(本來想用goto之類的函數 但matlab好像沒有)

--
XTEMP(sol,:)=factoradic_to_per(X,sol,Nvar); %把變數轉成排序
for var=1:Nvar-1
temp = XTEMP(sol,var); %用temp來暫存值 作兩兩交換
XTEMP(sol,var)=XTEMP(sol,var+1);
XTEMP(sol,var+1)=temp;

tempOFV2 = fitness_TEMP(XTEMP,sol); %用函數計OFV值

if tempOFV2 < pF(1,sol) %pF是目前這個排序的OFV值

mm=permutation_to_dec(XTEMP,sol,Nvar);
X(sol,:)=dec_to_factoradic(mm,Nvar);
%這兩行把交換過後的排序 存起來

if tempOFV2 < pF(1,sol)
pF(sol) = tempOFV2;
if pF(sol) < pF(gBest)
gBest=sol;
genBest=gen;
end
end
var=1; %從迴圈內改寫迴圈的計數器

else
XTEMP(sol,var+1) = XTEMP(sol,var);
XTEMP(sol,var) = temp; %如果沒比較好就換回來
end
end


感謝大家幫忙 前十個留言的ID各送200P
以表感謝

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.114.54.67
※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1478701652.A.2AE.html
sunev: matlab的for-loop沒辦法「從迴圈內改寫迴圈的計數器」 11/10 07:11
YoursEver: 推樓上,這很重要,上次也靠實驗確認過了. 11/10 10:24
JACK19920102: 那用while迴圈會比較好嗎? 11/10 13:09
JACK19920102: 可以從while裡面去改寫while的條件嗎? 11/10 14:55
JACK19920102: might be used incompatibly or redefined 11/10 14:56
JACK19920102: 我用while 出現這樣 11/10 14:56
JACK19920102: 發錢結束 晚點發錢給前兩樓大大 11/16 21:20
JACK19920102: 錢已發畢 11/21 11:18

你可能也想看看

搜尋相關網站