Şu anda MATLAB'de bir benzetim kodluyorum ve yaşadığım bir sorun hakkında yardıma ihtiyacım var.MATLAB: Birleştirme İşlev Tutamaçları
I n
ayrı anonim işlev hücresi dizisinin functions
depolanan her biri f_i
, kolları ve bir 1x1 sayısal dizi x_i
kabul eder ve bir 1x1 sayısal dizi y_i
döner sahip bir sorun üzerinde çalışıyorum. Bunları anonim fonksiyonunun her birleştirmek çalışıyorum
tek n
x 1
sayısal diziyi X
kabul eder ve tek n
x 1
-sayısal dizi Y
döndüren bir tek anonim işlev kolu içine işler. Burada X(i) = x_i
, Örnek olarak Y(i) = y_i = f_i(x_i)
n = 2
izin vermedi ve f_1 ve iki fonksiyon giriş ve çıkış 1x1
diziler olduğunu kolları ve bir hücre dizisinde adlandırılmış işlevleri
f_1 = @(x_1) x_1^2
f_2 = @(x_2) x_2^3
functions = {f_1,f_2}
saklanır olmak f_2 n
, f_1
ve f_2
'u 2x1
sayısal dizisini girip çıkaran bir işlev tanıtıcısı F'yi kullanabilecektir.
F = @(x) [f_1(x(1,1));f_2(x(2,1))]
Teşekkür:
Ve burada bir kaç test durumları vardır! Ben mümkün olduğunca verimli olması için kodu gerekir, bu yüzden muhtemelen işlevini kullanın ve feval satır içi işlevi kolu değerlendirmesini kullanarak daha hızlı olup olmadığını bilmek olur uzunluk/iddia argümanlar ... Ayrıca , kaldıracak?Yani, y (i) = f {i} (x (i)) y'den daha hızlı (i) = feval (f {i}, x (i))> –