İşlevimin başka bir işlevi geçersiz kılıp kılmadığını çalışma zamanında öğrenmeye çalışıyorum.İşlevimin başka bir işlevi geçersiz kılıp kılmadığını kontrol etme
Aşağıdaki varsayımsal senaryoları göz önünde bulundurun. Sinyal İşleme Araç Kutusu yüklü ise MATLAB içinde mevcut olabilir freqz
adlı bir fonksiyonel uyguluyor. Eğer gerçekten zaten araç kutusunun bir parçası olarak mevcutsa, onu kendi başıma aramak ve sonucunu geri vermek istiyorum. Eğer mevcut değilse, kendi işlevimin kendi işlemesini yapmasını isterim.
Aşağıda örnek bir yalancı kod Bu durumda
function foo(args)
if overrides_another_function(foo)
func = find_overriden_function(foo);
result = func(args);
else
result = my_own_processing(args);
return result;
, birisi foo
aradığında, bekledikleri sürümünü alırsınız ve foo
başka bir yerden kullanılamaz eğer geri kendi uygulanmasına ilişkin düşmek var. MATLAB böyle bir şey yapabilir mi?
: foo
içinde exist
çağrılması
- hep bir işlev olarak kabul edilir çünkü biz ilk kez içine girince ilan
2
(işlev var) döndürür. exist
'un m-dosyasındaki bir işlevin dışında çalıştırılması geçersiz MATLAB sözdizimi.- Belirli bir adla tüm işlevleri listelemenin bir yolunu bulamadım. Eğer bu mümkün olursa, bu beni yarı yolda bulur (en azından varoluşu hakkında bilgi sahibi olurdum, fakat yine de geçersiz kılınan işleve nasıl erişileceğini anlamaya ihtiyacım olurdu).
Sen "senin" fonksiyonlarını içeren çalışma alanınızdaki bir alt klasörler oluşturabilirsiniz. Öncelikle ana fonksiyonunuz bilinmemek zorundadır, böylece orijinal fonksiyonun varlığını kontrol edebilirsiniz ('' '' '') - eğer sonuç boşsa, 'addpath' fonksiyonunu kullanarak klasöre kendi özel fonksiyonunuzu ekleyebilirsin. Nesne yönelimli programlama kullanarak daha zarif yollar vardır. Ama ben buna aşina değilim. – thewaywewalk
Burada sağlanan çözümlerden herhangi biri sizin için çalışıyor mu? – Divakar