के रूप में किसी अन्य फ़ंक्शन में फ़ंक्शन हैंडल पैरामीटर पास करना आनुवंशिक एल्गोरिदम (सिरदर्द के भार, मज़े के भार) से जुड़े असाइनमेंट पर कार्य करना। मुझे अपने परिणामों की तुलना करने के लिए अलग-अलग क्रॉसओवर विधियों और भिन्न उत्परिवर्तन विधियों का परीक्षण करने में सक्षम होना चाहिए (पेपर का हिस्सा मुझे पाठ्यक्रम के लिए लिखना है)। इस तरह, मैं फंक्शन हैंडल के रूप में फ़ंक्शन नामों को रिपोपलेट विधि में पास करना चाहता हूं।MATLAB- एक हैंडल
function newpop = Repopulate(population, crossOverMethod, mutationMethod)
...
child = crossOverMethod(parent1, parent2, @mutationMethod);
...
function child = crossOverMethod(parent1, parent2, mutationMethod)
...
if (mutateThisChild == true)
child = mutationMethod(child);
end
...
यहां मुख्य बिंदु 3 की तरह है, पैरामीटर 3: मैं mutationMethod को दूसरे स्तर पर कैसे पास करूं? अगर मैं @ प्रतीक का उपयोग, मुझे बताया गया हो:
"mutationMethod" was previously used as a variable,
conflicting with its use here as the name of a function or command.
मैं @ प्रतीक का उपयोग नहीं करते हैं, तो mutationMethod कहा जाता हो जाता है, कोई पैरामीटर के साथ, और काफी दुखी है।
जबकि मुझे पता है कि हाँ, मैं इसे अपने कोड को अलग-अलग काम करने के लिए फिर से लिख सकता हूं, अब मैं इसे वास्तव में कार्य पर कैसे बना सकता हूं।
किसी भी मदद की बहुत सराहना की जाती है।