2009-11-08 21 views

cevap

17

This page

Scripts Matlab ifadeleri içeren m-dosyalarıdır Fonksiyonlar karşı

Script, diyor. MATLAB `` fonksiyonları '' başka türde bir m-dosyasıdır. Scriptler ile arasındaki en büyük arasındaki fark, fonksiyonların girişine ve çıkış parametrelerine sahip olmasıdır. Komut dosyası dosyaları yalnızca 'un m-dosyalarına kodlanmış olduğu değişkenler üzerinde çalışabilir. Görebildiğiniz gibi , daha çok işlevlerini görebiliyor. Bu nedenle, farklı verisine uygulanacak genel amaçlı görevlerine uygun daha vardırlar.

Komut dosyaları, değişmeyen görevleri için kullanışlıdır. Ayrıca, eylemlerinin belirli bir dizisini belgelemek için yollarından bir tanesidir, özel parametre değerleriyle bir işlev çağrısı, hatırlanması zor olan olabilir.

Scriptler ve işlevleri arasında daha fazla ince farklar vardır. Bir komut dosyası, bir makro makro olarak olarak düşünülebilir: komut dosyasının adını yazdığınızda, bu komutlarının içerdiği tüm komutlar, bu komutlarını, komut penceresine yazdığınız gibi çalıştırılır. Böylece, komut dosyasında oluşturulan tüm değişkenler, geçerli oturum için çalışma alanına eklenir. Ayrıca, komut dosyasındaki dosyasındaki değişkenlerden herhangi biri, geçerli çalışma alanınızdaki ile aynı ada sahipse, çalışma alanındaki bu değişkenler, komut dosyasındaki eylemler tarafından değiştirilen değerleridir. Bu, sizin yararınıza kullanılabilir. da istenmeyen yan etkilere neden olabilir. Buna karşılık, işlev değişkenleri, işlev için yerel olan 'dir. (Istisna o bildirmek mümkündür ve küresel değişkenleri kullanın, ama bu gerektirir ve kullanıcıdan özel eylem olmasıdır.) değişkenler, daha fazla güvenlik ve esneklik sağlar fonksiyonun yerel kapsamı. işlevine girip çıkmak için işlevinin işlevinin tek yolu ( dışında) parametre listelerinde değişkenleri üzerinden gerçekleştirilir.

örneği komut ve fonksiyon arasındaki temel farklar

bir çalışma değişkenleri erişimdir. Örneğin, çalışma alanında varsayalım, iki değişken a = 10 ve b = 20 tanımladınız. Bu değişkenler ana komutun komut satırında tanımlanır.

Senaryo dosyası - display_mult.m

disp(a*b);

, çalışma alanında 10*20 veya 200 yani a ve b ürününü görüntüleyecektir display_mult Typing.

Ama bir işlev tanımlanmış ise, denilen display_mult aynı isimde bir dosyada tanımlanır:

Fonksiyon dosyası - display_mult.m

function display_mult(a,b) 
    disp(a*b); 
end 

Sen ikisini kapsayacak şekilde olurdu işlev çağrısına argümanlar olarak değişkenler. Bu nedenle,ve b işlevlerinin çalışma alanında bulunmadığından, bu sefer çalışmaz. İstediğiniz sonucu gösterecek display_mult(a,b)'u çalıştırarak bunları eklemelisiniz.

Basit açıklama

Senaryoya Her ifade MATLAB komut penceresinde onları yazarak eşdeğerdir. Onları bir dosyada önceden saklıyorsun!

Diğer yandan, bir işlev, argümanları alır ve ana çalışma alanından ayrı bir "yeni" çalışma alanıdır.

Not: Bir işlev çağrısı sonunda end isteğe bağlıdır ancak işleri organize etmek için eklemeyi seviyorum. Elbette, bir dosyada birden fazla işlev tanımınız varsa, bunların tümü end ile bitmelidir. Ayrıca, aynı dosyada bir komut dosyası ve işlev tanımı olamaz.

+0

örnek? bana bir örnek verebilir misin? – izzat

+0

Bir örnek eklendi ve çözüm üzerinde genişledi – Jacob

İlgili konular