Matlab'da program yürütme nasıl duraklatılır. Şekil 2.2 - Ufka açılı olarak atılan bir cismin hareketi. geçiş ifadesi

  • 09.05.2019

). Kemometride kullanılan genel amaçlı araçlar arasında MatLab paketi özel bir yer tutmaktadır. Popülaritesi son derece yüksektir. Bunun nedeni, MatLab'ın güçlü ve çok yönlü çok boyutlu veri işleme olmasıdır. Paketin yapısı, onu matris hesaplamaları yapmak için uygun bir araç haline getirir. Çalışması gerçekleştirilebilecek problemlerin aralığı MatLab yardımı, şunları kapsar: matris analizi, sinyal ve görüntü işleme, sinir ağları ve diğerleri. MatLab, deneyimli kullanıcıların programlanmış algoritmaları anlamalarını sağlayan üst düzey bir açık kaynak dilidir. Basit bir yerleşik programlama dili, kendi algoritmalarınızı oluşturmanızı kolaylaştırır. MatLab'ı uzun yıllar boyunca kullanmak için çok sayıda işlev ve ToolBox (özel araç paketleri) oluşturulmuştur. En popüler olanı, Eigenvector Research, Inc.'den PLS ToolBox'tır.

1. Temel bilgiler

1.1. MatLab çalışma ortamı

Programı başlatmak için simgeye çift tıklayın. Şekilde gösterilen çalışma ortamı önünüze açılacaktır.

Çalışma ortamı MatLab 6.xönceki sürümlerin çalışma ortamından biraz farklı, birçok yardımcı elemana erişmek için daha uygun bir arayüze sahip

Çalışma ortamı MatLab 6.x aşağıdaki unsurları içerir:

    düğmeler ve açılır liste içeren bir araç çubuğu;

    Pad sekmeli penceresini başlatın ve çalışma alanıçeşitli ToolBox modüllerine ve çalışma alanının içeriğine erişebileceğiniz;

    sekmeli pencere Komut Geçmişi ve Geçerli Dizin, önceden girilmiş komutları görüntülemek ve geri çağırmak ve ayrıca geçerli dizini ayarlamak için tasarlanmıştır;

    komut istemini "ve yanıp sönen bir dikey imleç içeren komut penceresi;

    durum çubuğu.

Çalışma ortamında ise MatLab 6.xşekilde gösterilen bazı pencereler eksik, ardından Görünüm menüsünde uygun öğeleri seçin: Komut Penceresi, Komut Geçmişi, Geçerli Dizin, Çalışma Alanı, Başlatma Pedi.

Komutlar, komut penceresinde yazılmalıdır. Komut satırı istemini belirtmek için "karakter" yazmanız gerekmez. Görüntülemek için çalışma alanı sola veya sağa hareket etmek için kaydırma çubuklarını veya Ana Sayfa, Bitir tuşlarını ve yukarı veya aşağı hareket etmek için PageUp, PageDown tuşlarını kullanmak uygundur. Aniden, komut penceresinin çalışma alanında dolaştıktan sonra, yanıp sönen imleç ile komut satırı kaybolursa, sadece Enter tuşuna basın.

MatLab'ın bu komutu yürütmesi veya ifadeyi hesaplaması için herhangi bir komut veya ifade kümesinin Enter tuşuna basılarak bitmesi gerektiğini hatırlamak önemlidir.

1.2. En basit hesaplamalar

Ara Komut satırı 1 + 2 ve Enter'a basın. Sonuç olarak, MatLab komut penceresinde aşağıdakiler görüntülenir:

Pirinç. 2 Temel bileşen analizinin grafiksel gösterimi

MatLab ne yaptı? Önce 1 + 2'nin toplamını hesapladı, ardından sonucu ans özel değişkenine yazdı ve 3'e eşit değerini komut penceresine yazdırdı. Cevabın altında, yanıp sönen bir imleç içeren bir komut satırı bulunur ve bu, MatLab'ın daha sonraki hesaplamalar için hazır olduğunu gösterir. Komut satırına yeni ifadeler yazabilir ve değerlerini bulabilirsiniz. Önceki ifadeyle çalışmaya devam etmeniz gerekiyorsa, örneğin (1 + 2) /4.5'i hesaplayın, o zaman en kolay yol, ans değişkeninde depolanan zaten var olan sonucu kullanmaktır. ans / 4.5 yazın (ondalık kesirleri girerken nokta kullanılır) ve tuşuna basın Girmek, ortaya çıkıyor

Pirinç. 3 Temel bileşen analizinin grafiksel gösterimi

1.3. yankı komutları

MatLab'daki her komut yankılanır. Yukarıdaki örnekte, cevap ans = 0.6667'dir. Genellikle yankı, programın çalışmasını algılamayı zorlaştırır ve ardından kapatılabilir. Bunu yapmak için komutun noktalı virgülle bitmesi gerekir. Örneğin

Pirinç. 4 ScoresPCA işlevine girme örneği

1.4. Çalışma ortamının korunması. MAT dosyaları

Tüm değişken değerlerini kaydetmenin en kolay yolu Dosya menüsünde Çalışma Alanını Farklı Kaydet öğesini kullanmaktır. Dizin ve dosya adını belirtmeniz gereken Çalışma Alanı Değişkenlerini Kaydet iletişim kutusu görüntülenir. Varsayılan olarak, dosyayı ana MatLab dizininin çalışma alt dizinine kaydetmeniz önerilir. Program, çalışma sonuçlarını mat uzantılı bir dosyaya kaydedecektir. Artık MatLab'ı kapatabilirsiniz. Bir sonraki oturumda, değişkenlerin değerlerini geri yüklemek için Dosya menüsünün Aç alt öğesini kullanarak bu kayıtlı dosyayı açın. Artık önceki oturumda tanımlanan tüm değişkenler yeniden kullanılabilir durumda. Yeni girilen komutlarda kullanılabilirler.

1.5. dergi

MatLab, daha sonra bir metin düzenleyiciden okunabilen veya yazdırılabilen bir metin dosyasına yürütülebilir komutlar ve sonuçlar yazma (bir çalışma günlüğü tutma) yeteneğine sahiptir. Günlüğe kaydetmeye başlamak için komutu kullanın günlük... Bir komut argümanı olarak günlük iş günlüğünün saklanacağı dosyanın adını belirtmelisiniz. Daha fazla yazılan komutlar ve bunların yürütülmesinin sonuçları, örneğin bir dizi komut gibi bu dosyaya yazılacaktır.

aşağıdaki eylemleri gerçekleştirir:

    examplel-1.txt dosyasındaki günlüğü açar;

    hesaplamalar yapar;

    tüm değişkenleri MAT dosyasına work-1.mat kaydeder;

    günlüğü, MatLab kök dizininin çalışma alt dizinindeki example-1.txt dosyasına kaydeder ve MatLab'ı kapatır;

Bir metin düzenleyicide examplel-1.txt dosyasının içeriğine bakın. Dosya aşağıdaki metni içerecektir:

a1 = 3;
a2 = 2.5;
a3 = a1 + a2

Çalışmayı kaydet-1
çıkış yapmak

1.6. Yardım sistemi

MatLab yardım penceresi, Help menüsünde Help Window (Yardım Penceresi) seçeneği seçildikten sonra veya araç çubuğundaki soru butonu tıklanarak açılır. Aynı işlem komutu yazılarak da yapılabilir. yardım kazanmak... Tek tek bölümler için bir yardım penceresi görüntülemek için şunu yazın helpwin konusu... Yardım penceresi, yardım komutuyla aynı bilgileri sağlar, ancak pencereli arabirim daha fazlasını sağlar. uygun iletişim diğer yardım konuları ile. Math Works web sitesinin adresini kullanarak firmanın sunucusuna giriş yapabilir ve sorularınızla ilgili en güncel bilgileri alabilirsiniz. Yeni yazılım ürünlerini tanıyabilir veya teknik destek sayfasında sorunlarınıza cevap bulabilirsiniz.

2. Matrisler

2.1. Skaler, vektörler ve matrisler

MatLab'da skalerler, vektörler ve matrisler kullanılabilir. Bir skaler girmek için değerini bir değişkene atamak yeterlidir, örneğin

MatLab'ın büyük harf ve harf arasında ayrım yaptığını unutmayın. büyük harfler yani p ve P farklı değişkenlerdir. Dizileri (vektörler veya matrisler) girmek için öğeleri köşeli parantez içine alınır. 1 × 3 çizgi vektörü girmek için, çizginin öğelerinin boşluk veya virgülle ayrıldığı aşağıdaki komutu kullanın.

Sütun vektörü girerken öğeleri noktalı virgülle ayırın. Örneğin,

Küçük boyutlu matrisleri doğrudan komut satırından girmek uygundur. Siz yazarken, bir matris, her bir öğesi bir satır vektörü olan bir sütun vektörü olarak düşünülebilir.

veya bir matris, her elemanı bir sütun vektörü olan bir satır vektörü olarak düşünülebilir.

2.2. Elemanlara erişim

Matris öğelerine iki dizin kullanılarak erişilir - parantez içine alınmış satır ve sütun numaraları, örneğin, B (2, 3) komutu, B matrisinin ikinci satırının ve üçüncü sütununun bir öğesini döndürür. Bir matristen bir sütun veya satır seçmek için, matrisin sütun veya satır numarasını indekslerden biri olarak kullanın ve diğer indeksi iki nokta üst üste ile değiştirin. Örneğin, A matrisinin ikinci satırını z vektörüne yazıyoruz.

İki nokta üst üste kullanarak matris bloklarını da vurgulayabilirsiniz. Örneğin, renkle işaretlenmiş bloğu P matrisinden seçin.

Çalışma ortamının değişkenlerini görüntülemeniz gerekiyorsa, komut satırına komutu yazmanız gerekir. kimin .

Çalışma alanının bir skaler (p), dört matris (A, B, P, P1) ve bir satır vektörü (z) içerdiğini görebilirsiniz.

2.3. Temel matris işlemleri

Matris işlemlerini kullanırken, toplama veya çıkarma için matrislerin aynı boyutta olması gerektiğini ve çarparken birinci matristeki sütun sayısının ikinci matristeki satır sayısına eşit olması gerektiğini unutmayın. Matrislerin, sayıların ve vektörlerin toplanması ve çıkarılması, artı ve eksi işaretleri kullanılarak gerçekleştirilir.

ve çarpma bir yıldız * ile gösterilir. 3 × 2 matris tanıtın

Bir matrisin bir sayı ile çarpması da bir yıldız işareti kullanılarak gerçekleştirilir ve hem sağda hem de solda bir sayı ile çarpabilirsiniz. ^ operatörü kullanılarak bir kare matris bir tamsayı gücüne yükseltilir

P matrisini kendisiyle çarparak sonucunuzu kontrol edin.

2.4. Özel matrisler oluşturma

Dikdörtgen bir matrisi sıfırlarla doldurmak, yerleşik işlev tarafından yapılır. sıfırlar

Kimlik matrisi, işlev kullanılarak oluşturulur göz

Fonksiyonun çağrılması sonucunda birlerden oluşan bir matris oluşturulur. olanlar

MatLab, matrisleri rastgele sayılarla doldurma yeteneği sağlar. fonksiyonun sonucu ran sıfır ile bir arasında eşit olarak dağılmış sayıların bir matrisidir ve fonksiyonlar randn- sıfır ortalama ve birim varyans ile normal yasaya göre dağıtılan sayıların matrisi.

İşlev diag elemanları çapraz olarak düzenleyerek bir vektörden köşegen bir matris oluşturur.

2.5. matris hesaplamaları

MatLab, matrislerle çalışmak için birçok farklı fonksiyon içerir. Bu nedenle, örneğin, bir kesme işareti kullanılarak bir matris aktarılır "

Ters matris, fonksiyon kullanılarak bulunur. env kare matrisler için

3. MatLab ve Excel Entegrasyonu

MatLab ve Excel'in entegrasyonu, Excel kullanıcısının veri işleme, çeşitli hesaplamalar ve sonucun görselleştirilmesi için çok sayıda MatLab işlevine erişmesine olanak tanır. excllink.xla eklentisi, bu Excel geliştirmesini uygular. MatLab ve Excel arasındaki iletişim için özel fonksiyonlar tanımlanmıştır.

3.1. Excel'i Yapılandırma

Excel'i MatLab ile birlikte çalışacak şekilde yapılandırmadan önce, Excel Link'in programa dahil edildiğinden emin olmalısınız. yüklü sürüm MatLab. excllink.xla eklenti dosyası, MatLab ana dizininin veya araç kutusu alt dizininin exclink alt dizininde bulunmalıdır. Excel'i başlatın ve Araçlar menüsünden Eklentiler'i seçin. Mevcut eklentiler hakkında bilgi içeren bir iletişim kutusu açılacaktır. excllink.xla dosyasının yolunu belirtmek için Gözat düğmesini kullanın. Satır, iletişim kutusundaki eklentiler listesinde görünür MatLab ile kullanım için Excel Link 2.0 bayrak seti ile. Tamam'a tıklayın, gerekli eklenti Excel'e eklendi.

Excel'in artık üç düğme içeren bir Excel Bağlantısı araç çubuğuna sahip olduğunu unutmayın: putmatrix, getmatrix, evalstring. Bu düğmeler, Excel ile MatLab arasındaki ilişkiyi uygulamak için gereken ana eylemleri gerçekleştirir - matris verilerinin değişimi ve Excel ortamından MatLab komutlarının yürütülmesi. tekrarlanan ile Excel lansmanları excllink.xla eklentisi otomatik olarak bağlanır.

Kabul Excel çalışması ve MatLab, Excel'de varsayılan olarak kabul edilen (ancak değiştirilebilir) birkaç kurulum daha gerektirir. Araçlar menüsünde Seçenekler'e gidin, Seçenekler iletişim kutusu açılır. Genel sekmesini seçin ve R1C1 referans stili bayrağının kapalı olduğundan emin olun, yani. hücreler A1, A2 vb. olarak numaralandırılmıştır. Düzenle sekmesinde, Seçimi Girdikten Sonra Taşı bayrağı ayarlanmalıdır.

3.2. MatLab ve Excel arasında veri alışverişi

Excel'i başlatın, her şeyin yapıldığını kontrol edin gerekli ayarlarönceki bölümde açıklandığı gibi (MatLab kapatılmalıdır). A1 ila C3 hücrelerine bir matris girin, Excel gereksinimlerine göre ondalık basamakları ayırmak için bir nokta kullanın.

Sayfadaki hücre verilerini seçin ve putmatrix düğmesine basın, MatLab'ın çalışmadığına dair bir uyarı içeren bir Excel penceresi açılır. Tamam'a tıklayın, MatLab'ın açılmasını bekleyin.

MatLab çalışma ortamının değişkeninin adını tanımlamak için tasarlanmış bir giriş satırına sahip bir Excel iletişim kutusu belirir; Excel hücreleri... Örneğin M girin ve pencereyi OK düğmesiyle kapatın. MatLab komut penceresine gidin ve üretim ortamında üçe üç dizi içeren bir M değişkeninin oluşturulduğundan emin olun:

MatLab'da M matrisi ile bazı işlemleri yapın, örneğin ters çevirin.

Telefon etmek env MatLab komutları gibi matrisi ters çevirmek için doğrudan Excel'den gerçekleştirebilirsiniz. Excel Link panelinde bulunan evalstring düğmesine basıldığında, giriş satırına MatLab komutunu yazmanız gereken bir iletişim kutusunun görünümüne yol açar.

IM = env (M).

Sonuç, komutu MatLab ortamında yürütürken elde edilene benzer.

Excel'e dönün, A5 hücresini geçerli yapın ve getmatrix düğmesini tıklayın. Excel'e aktarılacak değişkenin adını girmenizi isteyen bir giriş satırı içeren bir iletişim kutusu görüntülenir. V bu durumda böyle bir değişken IM'dir. Tamam'a tıklayın, A5 ila A7 arasındaki hücreler ters matris öğeleriyle doldurulur.

Bu nedenle, bir matrisi MatLab'a aktarmak için Excel sayfasının uygun hücrelerini seçmelisiniz ve içe aktarma için içe aktarılan dizinin sol üst öğesi olacak bir hücre belirtmeniz yeterlidir. Elemanların geri kalanı, dizinin boyutuna göre sayfanın hücrelerine, içerdikleri verilerin üzerine yazılacak, bu nedenle dizileri içe aktarırken dikkatli olmalısınız.

Yukarıdaki yaklaşım en basit bir şekilde uygulamalar arasında bilgi alışverişi - ilk veriler Excel'de bulunur, daha sonra MatLab'a aktarılır, orada bir şekilde işlenir ve sonuç Excel'e aktarılır. Kullanıcı, Excel Link araç çubuğundaki düğmeleri kullanarak verileri aktarır. Bilgi bir matris şeklinde sunulabilir, yani. çalışma sayfasının dikdörtgen alanı. Bir satırda veya sütunda düzenlenen hücreler, sırasıyla MatLab'ın satır vektörlerine ve sütun vektörlerine aktarılır. Satır vektörlerinin ve sütun vektörlerinin Excel'e aktarılması da benzer şekilde çalışır.

4. Programlama

4.1. M dosyaları

Çok sayıda komut girmeniz ve bunları sık sık değiştirmeniz gerekiyorsa, MatLab komut satırından çalışmak zordur. Bir komutla günlük tutma günlük ve çalışma ortamını korumak işi biraz daha kolaylaştırır. en uygun bir şekilde MatLab komut gruplarını yürütmek, komutları yazabileceğiniz, hepsini bir kerede veya parçalar halinde yürütebileceğiniz, bir dosyaya kaydedebileceğiniz ve daha sonra kullanabileceğiniz M dosyalarının kullanılmasıdır. M-dosya düzenleyicisi, M-dosyaları ile çalışmak için tasarlanmıştır. Yardımı ile kendi işlevlerinizi oluşturabilir ve komut penceresinden de dahil olmak üzere bunları arayabilirsiniz.

Ana MatLab penceresinin Dosya menüsünü açın ve Yeni öğesinde M-dosyası alt öğesini seçin. Yeni dosya, şekilde gösterilen M-file düzenleyici penceresinde açılır.

MatLab'da iki tür M dosyası vardır: program dosyası ( Komut Dosyası M Dosyaları) bir dizi komut ve dosya işlevi içeren ( İşlev M Dosyaları) kullanıcı tanımlı işlevleri tanımlayan.

4.2. dosya programı

Bir grafik penceresinde iki grafiğin oluşturulmasına yol açan düzenleyicide komutları yazın

Şimdi editörün Dosya menüsündeki Farklı kaydet öğesini seçerek ana MatLab dizininin çalışma alt dizinine mydemo.m adlı dosyayı kaydedin. Yürütülmek üzere dosyada bulunan tüm komutları çalıştırmak için Hata Ayıklama menüsünde Çalıştır öğesini seçin. Ekranda bir grafik penceresi görünecektir. Şekil 1 fonksiyonların grafiklerini içerir.

Dosya programı komutları komut penceresine çıktı. Çıktıyı bastırmak için komutları noktalı virgülle sonlandırın. Yazarken bir hata yapılırsa ve MatLab komutu tanıyamazsa, komutlar yanlış girilene kadar yürütülür ve ardından komut penceresinde bir hata mesajı görüntülenir.

M-dosya düzenleyicisi tarafından sağlanan çok kullanışlı bir özellik, komutların bir kısmının yürütülmesidir. Grafik penceresini kapat Şekil 1... Tutarken fare ile seçin sol düğme veya tuşuna basılırken yön tuşları ile Vardiya, ilk dört komut ve bunları Metin öğesinden yürütün. Grafik penceresinde yürütülen komutlara karşılık gelen yalnızca bir grafiğin görüntülendiğini lütfen unutmayın. Bazı komutları yürütmek için bunları seçin ve F9 tuşuna basın.

M dosyasının bireysel blokları, yürütme sırasında atlanan ancak M dosyasıyla çalışırken kullanışlı olan yorumlarla sağlanabilir. Yorumlar yüzde işaretiyle başlar ve otomatik olarak yeşil renkle vurgulanır, örneğin:

Mevcut bir M-dosyası, çalışma ortamının Dosya menüsünün Aç öğesi veya M-dosya düzenleyicisi kullanılarak açılır.

4.3. dosya işlevi

Yukarıdaki dosya programı sadece bir MatLab komutları dizisidir, girdi ve çıktı argümanları yoktur. Sayısal yöntemleri kullanmak için ve MatLab'da kendi uygulamalarınızı programlarken, üreten dosya fonksiyonlarını oluşturabilmeniz gerekir. gerekli eylemler girdi argümanlarıyla ve eylemin sonucunu çıktı argümanlarıyla döndürür. Dosya işlevleriyle nasıl çalışacağınızı anlamanıza yardımcı olacak birkaç basit örneğe bakalım.

Merkezleme, genellikle çok değişkenli kemometrik analiz verilerinin ön işlenmesinde kullanılır. Bir dosya fonksiyonunu bir kez yazmak ve sonra onu ortalamak için gerekli olan her yerde çağırmak mantıklıdır. M-file düzenleyicisinde yeni bir dosya açın ve şunu yazın

İlk satırdaki işlev sözcüğü, bu dosyanın bir işlev dosyası içerdiğini belirtir. İlk satır, işlevin adını ve giriş ve çıkış bağımsız değişkenlerinin listesini içeren işlev başlığıdır. Örnekte, işlev adı merkezleniyor, bir giriş argümanı X ve bir çıkış Xc'dir. Başlıktan sonra yorumlar ve ardından değerinin hesaplandığı işlevin gövdesi (bu örnekte iki satırdan oluşur) gelir. Hesaplanan değerin Xc'ye yazılması önemlidir. Ekranda gereksiz bilgilerin görüntülenmesini önlemek için noktalı virgül eklediğinizden emin olun. Şimdi dosyayı çalışma dizininize kaydedin. Dosya menüsünün Kaydet veya Farklı kaydet öğesini seçmenin, Dosya adı alanında zaten ad ortalamasını içeren bir dosya kaydetme iletişim kutusu açacağını unutmayın. Değiştirmeyin, fonksiyon dosyasını önerilen adla bir dosyaya kaydedin!

Artık oluşturulan işlev, yerleşik sin, cos ve diğerleri ile aynı şekilde kullanılabilir. Kendi işlevleri, bir program dosyasından ve başka bir dosya işlevinden çağrılabilir. Matrisleri ölçeklendirecek bir dosya işlevi yazmaya çalışın, yani. her sütunu, o sütunun standart sapmasına bölün.

Virgülle ayrılmış bir listeye yerleştirilmiş birkaç giriş bağımsız değişkenine sahip bir işlev dosyası yazabilirsiniz. Birden çok değer döndüren işlevler de oluşturabilirsiniz. Bunu yapmak için, çıktı argümanları, çıktı argümanları listesine virgülle ayrılmış olarak eklenir ve listenin kendisi köşeli parantez içine alınır. İyi bir örnek saniye cinsinden belirtilen süreyi saat, dakika ve saniyeye çeviren bir fonksiyondur.

Birkaç çıktı argümanıyla dosya işlevlerini çağırırken, sonuç karşılık gelen uzunlukta bir vektöre yazılmalıdır.

4.4 Bir program oluşturma

MatLab, vektörlerin ve matrislerin grafiğini çizmek, ayrıca yorum oluşturmak ve grafikleri yazdırmak için geniş fırsatlara sahiptir. Birkaç önemli grafik işlevi tanımlayalım.

İşlev komplo sahip çeşitli formlar girdi parametreleriyle ilgili olarak, örneğin (y) grafiği, y öğelerinin endekslerine bağımlılığının parçalı bir çizgi grafiğini oluşturur. Argüman olarak iki vektör verilirse, (x, y) grafiği y'ye karşı x'i çizecektir. Örneğin, 0'dan 2π'ye sin fonksiyonunu çizmek için aşağıdakileri yapın

Program, pencerede görüntülenen bir bağımlılık grafiği oluşturmuştur. Şekil 1

MatLab, her grafiğe (kullanıcının yaptığı durumlar hariç) otomatik olarak kendi rengini atar, bu da veri kümeleri arasında ayrım yapmanızı sağlar.

Emretmek devam etmek mevcut bir grafiğe eğriler eklemenizi sağlar. İşlev alt konu tek bir pencerede birden çok grafiği görüntülemenize olanak tanır

4.5 Grafikleri yazdırma

Dosya menüsündeki Yazdır öğesi ve komut Yazdır MatLab grafiklerini yazdırın. Yazdır menüsü, ortak standart yazdırma seçeneklerini seçmenize olanak tanıyan bir iletişim kutusu açar. Emretmek Yazdırçıktının çıktısında daha fazla esneklik sağlar ve M dosyalarından yazdırmayı kontrol etmenizi sağlar. Sonuç doğrudan varsayılan yazıcıya gönderilebilir veya belirli bir dosyaya kaydedilebilir.

5. Örnek programlar

Bu bölüm, çok boyutlu verilerin analizinde kullanılan en yaygın algoritmaları listeler. Hem en basit veri dönüştürme, merkezleme ve ölçekleme yöntemleri hem de veri analizi için algoritmalar - PCA, PLS - ele alınmaktadır.

5.1. Merkezleme ve ölçekleme

Analiz genellikle orijinal verilerin dönüştürülmesini gerektirir. En çok kullanılan veri dönüştürme yöntemleri, her bir değişkeni standart sapmaya göre ortalamak ve ölçeklendirmektir. Merkezleme fonksiyonunun kodunda matris verildi. Bu nedenle, aşağıda yalnızca işlevin kodu gösterilmektedir; terazi veri. Lütfen orijinal matrisin ortalanması gerektiğini unutmayın

fonksiyon Xs = ölçekleme (X)
% ölçeklendirme: çıktı matrisi Xs'dir
% matrisi X ortalanmalıdır

Xs = X * inv (diag (std (X)));

% ölçeklendirme sonu

5.2. SVD / PCA

Çok değişkenli analizde en popüler veri sıkıştırma yöntemi, temel bileşen analizidir (PCA). Matematiksel olarak, PCA orijinal matrisin bir ayrıştırmasıdır. x, yani iki matrisin bir ürünü olarak temsili T ve P

x = TP+ E

Matris T puan matrisi, matris ise artık matris olarak adlandırılır.

Matris bulmanın en basit yolu T ve P- adı verilen standart bir MatLab işlevi aracılığıyla SVD ayrıştırmasını kullanın svd .

fonksiyon = pcasvd (X)

Svd(X);
T = U * D;
P = V;

pcasvd'nin % sonu

5.3 PCA / NIPALS

PCA hesapları ve yükleri oluşturmak için, her adımda bir bileşen hesaplayan tekrarlayan algoritma NIPALS kullanılır. İlk matris ilk x dönüştürülür (en azından ortalanır; bkz.) ve bir matrise dönüşür E 0 , a= 0. Daha sonra aşağıdaki algoritma uygulanır.

T 2. P t = T T Ea / T T T 3. P = P / (P T P) ½ 4. T = Ea P / P T P 5. Yakınsamayı kontrol edin, değilse 2'ye gidin

Sonrakini hesapladıktan sonra ( a th) bileşenleri, varsayıyoruz Ta=T ve Pa=P E a+1 = EaT P aüzerinde a+1.

NIPALS algoritmasının kodu okuyucular tarafından yazılabilir; bu eğitimde yazarlar kendi versiyonlarını verir. PCA'yı hesaplarken, temel bileşenlerin sayısını (değişken sayısıPC) girebilirsiniz. Kaç tane bileşene ihtiyaç olduğunu bilmiyorsanız, komut satırına = pcanipals (X) yazmalısınız, ardından program bileşen sayısını orijinal matrisin boyutlarının en küçüğüne eşit olarak ayarlayacaktır. x.

fonksiyon = pcanipals (X, sayıPC)

Bileşen sayısının % hesaplaması
= boyut (X); P =; T =;

Lenf (sayı)> 0 ise
pc = sayıPC (1);
elseif (uzunluk (sayı) == 0) & X_r< X_c
bilgisayar = X_r;
Başka
bilgisayar = X_c;
son;

k=1 için: adet
P1 = rand (X_c, 1); T1 = X * P1; d0 = T1 "* T1;
P1 = (T1 "* X / (T1" * T1)) "; P1 = P1 / norm (P1); T1 = X * P1; d = T1" * T1;

d - d0> 0.0001 iken;
P1 = (T1 "* X / (T1" * T1)); P1 = P1 / norm (P1); T1 = X * P1; d0 = T1 "* T1;
P1 = (T1 "* X / (T1" * T1)); P1 = P1 / norm (P1); T1 = X * P1; d = T1 "* T1;
son

X = X - T1 * P1; P = kat (1, P, P1 "); T =;
son

Chemometrics eklentisini kullanarak PCA'nın nasıl hesaplanacağı öğreticide anlatılmaktadır.

5.4 PLS1

Çok değişkenli kalibrasyon için en popüler yöntem gizli projeksiyon (PLS) yöntemidir. Bu yöntemde, tahmin edici matris aynı anda ayrıştırılır. x ve yanıt matrisleri Y:

x=TP+ E Y=Uq+ F T=XW(P T W) –1

İzdüşüm tutarlı bir şekilde oluşturulur - karşılık gelen vektörler arasındaki korelasyonu en üst düzeye çıkarmak için x-hesaplar Ta ve Y-hesaplar sena... Veri bloğu ise Y birden fazla yanıt içerir (ör. K> 1), ilk verilerin iki projeksiyonunu oluşturabilirsiniz - PLS1 ve PLS2. İlk durumda, yanıtların her biri için y k kendi izdüşüm altuzayı inşa edilir. Aynı zamanda hesaplar T (sen) ve yük P (W, Q) hangi yanıtın kullanıldığına bağlıdır. Bu yaklaşıma PLS1 adı verilir. PLS2 yöntemi için, tüm yanıtlar için ortak olan yalnızca bir projeksiyon alanı oluşturulur.

PLS yönteminin ayrıntılı bir açıklaması bu kitapta verilmiştir.PLS1 hesaplarını ve yüklerini oluşturmak için tekrarlayan bir algoritma kullanılır. İlk matrisler x ve Y merkez

= mc(X);
= mc(Y);

ve bir matrise dönüşürler E 0 ve vektör F 0 , a= 0. Daha sonra bunlara aşağıdaki algoritma uygulanır.

1. w t = Fa T E a 2. w = w / (w T w) ½ 3. T = Ea w 4. Q = T T Fa / T T T 5. sen = QFa / Q 2 6. P t = T T Ea / T T T

Sonrakini hesapladıktan sonra ( a th) bileşenleri, varsayıyoruz Ta=T ve Pa=P... Bir sonraki bileşeni elde etmek için artıkları hesaplamanız gerekir. E a+1 = EaT P t ve dizini değiştirerek aynı algoritmayı onlara uygulayın aüzerinde a+1.

İşte kitaptan alınan bu algoritmanın kodu

fonksiyon = lütfen (x, y)
% PLS: bir PLS bileşenini hesaplar.
% Çıkış vektörleri w, t, u, q ve p'dir.
%
% Başlangıç ​​vektörü u olarak y'den bir vektör seçin.

u = y (:, 1);

% Yakınsama kriteri çok yüksek ayarlanmış.
kri = 100;

% Buradan sona kadar olan komutlar yakınsamaya kadar tekrarlanır.
while (kri> 1e - 10)

% Her u başlangıç ​​vektörü uold olarak kaydedilir.
uold = u; w = (u "* x)"; w = w / norm (w);
t = x * w; q = (t "* y)" / (t "* t);
u = y * q / (q "* q);

% Yakınsama kriteri, u-uold normunun u normuna bölümüdür.
kri = norm (uold - u) / norm (u);
son;

% Yakınsamadan sonra, p hesaplayın.
p = (t "* x)" / (t "* t);

% Sonu lütfen

Eklenti ile PLS1 hesaplama hakkında kemometrikEkle Excel sistemindeki manuel Projeksiyon yöntemlerinde açıklanmıştır.

5.5 PLS2

PLS2 için algoritma aşağıdaki gibidir. İlk matrisler x ve Y dönüştürün (en azından - merkez; bakın) ve matrislere dönüşürler E 0 ve F 0 , a= 0. Daha sonra bunlara aşağıdaki algoritma uygulanır.

1. Başlangıç ​​vektörünü seçin sen 2. w t = sen T E a 3. w = w / (w T w) ½ 4. T = Ea w 5. Q t = T T Fa / T T T 6. sen = Fa Q/ Q T Q 7. Yakınsamayı kontrol edin, değilse 2 8'e gidin. P t = T T Ea / T T T

Sonrakini hesapladıktan sonra ( a-th) PLS2 bileşenleri konmalıdır: Ta=T, Pa=p, wa=w, sena=sen ve Q bir = Q... Bir sonraki bileşeni elde etmek için artıkları hesaplamanız gerekir. E a+1 = Eat p t ve Fa +1 = F atq t ve dizini değiştirerek aynı algoritmayı onlara uygulayın aüzerinde a+1.

İşte kitaptan da ödünç alınan kod.

fonksiyon = plsr (x, y, a)
% PLS: bir PLS bileşenini hesaplar.
% Çıktı matrisleri W, T, U, Q ve P'dir.
% B, regresyon katsayılarını ve SS toplamlarını içerir
Artıklar için % kareler.
% a, bileşenlerin sayısıdır.
%
% Bir bileşen için: bitirmek için tüm komutları kullanın.

i = 1: için
% Karelerin toplamını hesaplayın. ss işlevini kullanın.
sx =;
sy =;

% Bir bileşeni hesaplamak için pls fonksiyonunu kullanın.
= lütfen (x, y);

% Artıkları hesaplayın.
x = x - t * p ";
y = y - t * q ";

% Vektörleri matrislere kaydedin.
W =;
T =;
U =;
S =;
P =;
son;

% Döngüden sonra regresyon katsayılarını hesaplayın.
B = W * inv (P "* W) * Q";

% Son kalan SS'yi kareler vektörlerinin toplamına ekleyin.
sx =;
sy =;

% X ve Y için ss vektörlerinin bir matrisini yapın.
SS =;

% Kullanılan SS fraksiyonunu hesaplayın.
= boyut (SS);
tt = (SS * diag (SS (1,:). ^ (- 1)) - birler (a, b)) * (-1)

% Sonu plsr

fonksiyon = ss (x)
% SS: X matrisinin karelerinin toplamını hesaplar.
%

ss = toplam (toplam (x. * x));
% Sonu

Eklenti ile PLS2 hesaplama hakkında kemometrikEkle Excel sistemindeki manuel Projeksiyon yöntemlerinde açıklanmıştır.

Çözüm

MatLab çok popüler bir veri analiz aracıdır. Ankete göre, tüm araştırmacıların üçte biri tarafından kullanılırken, Unsrambler programı bilim insanlarının yalnızca %16'sı tarafından kullanılıyor. MatLab'ın ana dezavantajı, yüksek fiyat... Ayrıca, MatLab rutin hesaplamalar için iyidir. Etkileşim eksikliği, yeni, keşfedilmemiş veri kümeleri için arama, araştırma hesaplamaları yaparken onu elverişsiz hale getirir.

Çok sayıda komut girmeniz ve bunları sık sık değiştirmeniz gerekiyorsa, MatLab komut satırından çalışmak zordur. Diary komutuyla günlük tutmak ve çalışma ortamını kaydetmek işleri biraz daha kolaylaştırır. MatLab komutlarını çalıştırmanın en uygun yolu kullanmaktır. M-dosyaları, komutları yazabileceğiniz, hepsini bir kerede veya parçalar halinde yürütebileceğiniz, bir dosyaya kaydedebileceğiniz ve daha sonra kullanabileceğiniz. M-dosya düzenleyicisi, M-dosyaları ile çalışmak için tasarlanmıştır. Bu düzenleyiciyi kullanarak kendi işlevlerinizi oluşturabilir ve komut satırı dahil olmak üzere bunları arayabilirsiniz.

Menüyü genişlet Dosya ana MatLab penceresinin ve paragrafta Yeni alt öğeyi seç M-dosyası... Yeni dosya, M-dosya düzenleyici penceresinde açılır.

Bir grafik penceresinde iki grafiğin oluşturulmasına yol açan komutları düzenleyiciye yazın:

x =;
f = exp (-x);
alt nokta (1, 2, 1)
arsa (x, f)
g = günah (x);
alt nokta (1, 2, 2)
arsa (x, g)

Şimdi mydemo.m adlı bir dosyayı bir alt dizine kaydedin İşöğeyi seçerek ana MatLab dizininin Farklı kaydet Menü Dosya editör. Yürütülmek üzere dosyada bulunan tüm komutları çalıştırmak için, öğeyi seçin. Çalıştırmak menüde Hata ayıkla. Ekranda bir grafik penceresi görünecektir. Figür 1 numara fonksiyonların grafiklerini içerir. Sinüs yerine kosinüsü çizmeye karar verirseniz, M dosyasındaki g = sin (x) satırını g = cos (x) olarak değiştirin ve tüm komutları yeniden çalıştırın.

Açıklama 1

Yazarken bir hata yapılırsa ve MatLab komutu tanıyamazsa, komutlar yanlış girilene kadar yürütülür ve ardından komut penceresinde bir hata mesajı görüntülenir.

M-dosya düzenleyicisi tarafından sağlanan çok kullanışlı bir özellik, bazı komutların yürütülmesi. Grafik penceresini kapat Figür No.1. Sol tuşa basılı tutarken fare ile veya basılı tutarken ok tuşları ile seçin , programın ilk dört komutu ve bunları noktadan yürütün Değerlendirmek seçim Menü Metin. Grafik penceresinde yürütülen komutlara karşılık gelen yalnızca bir grafiğin görüntülendiğini lütfen unutmayın. Bazı komutları yürütmek için bunları seçin ve tuşuna basın. ... Kalan üç program komutunu yürütün ve grafik penceresinin durumunu izleyin. Kendiniz deneyin, önceki laboratuvarlardan herhangi bir örneği M-dosya düzenleyicisine yazın ve çalıştırın.

M-dosyasının bireysel blokları temin edilebilir yorumlar, yürütme sırasında atlanır, ancak bir M dosyasıyla çalışırken uygundur. MatLab'daki yorumlar yüzde işaretiyle başlar ve otomatik olarak vurgulanır yeşil, Örneğin:

Ayrı bir pencerede günah (x) çizim yüzdesi

M-file düzenleyicisinde aynı anda birden fazla dosya açılabilir. Dosyalar arası geçiş, editör penceresinin altında yer alan dosya adlarına sahip yer imleri kullanılarak gerçekleştirilir.

Mevcut bir M-dosyasının açılması, öğe kullanılarak yapılır. Açık Menü Dosyaçalışma ortamı veya M dosyalarının düzenleyicisi. Dosyayı bir argüman olarak dosya adını belirterek komut satırından MatLab edit komutunu kullanarak düzenleyicide de açabilirsiniz, örneğin:

Argümansız edit komutu yeni bir dosya oluşturur.
Bu ve sonraki laboratuvarlarda bulunan tüm örnekler en iyi şekilde yazılır ve M dosyalarına kaydedilir, yorumlarla desteklenir ve M dosyası düzenleyicisinden yürütülür. MatLab'da sayısal yöntemlerin ve programlamanın uygulanması, M-dosyalarının oluşturulmasını gerektirir.

2. M-dosyalarının türleri

MatLab'da iki tür M dosyası vardır: program dosyası(Komut Dosyası M Dosyaları) bir dizi komut içeren ve dosya fonksiyonları(İşlev M Dosyaları), kullanıcı tanımlı işlevleri açıklar.

Önceki alt bölümü okuduğunuzda bir program dosyası (prosedür dosyası) oluşturdunuz. Program dosyasında belirtilen tüm değişkenler, yürütüldükten sonra üretim ortamında kullanılabilir hale gelir. Dosya düzenleyicide alt bölüm 2.1'de gösterilen dosya programını çalıştırın ve çalışma ortamının içeriğini görüntülemek için komut satırına whos yazın. Değişkenlerin açıklaması komut penceresinde görünecektir:

"kimin
Ad Boyut Bayt Sınıf
f 1x71 568 çift dizi
g 1x71 568 çift dizi
x 1x71 568 çift dizi
Genel toplam, 1704 bayt kullanan 213 öğedir

Bir program dosyasında tanımlanan değişkenler, diğer dosya programlarında ve komut satırından yürütülen komutlarda kullanılabilir. Dosya programında yer alan komutların yürütülmesi iki şekilde gerçekleştirilir:

  • Yukarıda açıklandığı gibi M-dosya düzenleyicisinden.
  • Komut satırından veya başka bir program dosyasından, M-dosyasının adı bir komut olarak kullanılır.

İkinci yöntemin kullanılması, özellikle oluşturulan program dosyası daha sonra tekrar tekrar kullanılacaksa çok daha uygundur. Aslında, oluşturulan M dosyası, MatLab'ın anladığı bir komut haline gelir. Tüm grafik pencerelerini kapatın ve komut satırına mydemo yazın, mydemo.m program dosyasındaki komutlara karşılık gelen bir grafik penceresi görünür. Mydemo MatLab komutunu girdikten sonra aşağıdaki işlemleri gerçekleştirir.

  • Girilen komutun üretim ortamında tanımlanan değişkenlerden herhangi birinin adı olup olmadığını kontrol eder. Bir değişken girilirse, değeri görüntülenir.
  • Bir değişken girilmemişse, MatLab yerleşik fonksiyonlar arasında girilen komutu arar. Komut yerleşik bir işlev olduğu ortaya çıkarsa, yürütülür.

Bir değişken veya yerleşik bir işlev girilmezse, MatLab komut adı ve uzantısı ile bir M dosyası aramaya başlar. m... Arama ile başlar geçerli dizin(Geçerli Dizin), içinde M dosyası bulunamazsa, MatLab içinde kurulu dizinleri arar. arama yolları(Yol). Bulunan M dosyası MatLab'da yürütülür.

Yukarıdaki eylemlerin hiçbiri başarıya yol açmadıysa, komut penceresinde bir mesaj görüntülenir, örneğin:

» Mydem
??? Tanımsız işlev veya değişken "mydem".

Tipik olarak, M dosyaları kullanıcının dizininde depolanır. MatLab'ın onları bulması için M-dosyalarının konumunu gösteren yolları ayarlamanız gerekir.

Açıklama 2

İki nedenden dolayı kendi M-dosyalarınızı ana MatLab dizininin dışında tutmalısınız. İlk olarak, MatLab'ı yeniden kurarken, ana MatLab dizininin alt dizinlerinde bulunan dosyalar yok edilebilir. İkinci olarak, MatLab'ı başlatırken, araç kutusu alt dizinindeki tüm dosyalar, iş performansını artırmak için bilgisayar belleğine en uygun şekilde yerleştirilir. M dosyasını bu dizine yazdıysanız, ancak MatLab'ı yeniden başlattıktan sonra kullanmak mümkün olacaktır.

3. Yolları ayarlama

MatLab sürüm 6'da .x geçerli dizin ve arama yolları belirlenir. Bu özellikler, uygun iletişim kutuları kullanılarak veya komut satırından komutlar kullanılarak ayarlanır.

Geçerli dizin bir iletişim kutusunda belirlenir Akım dizinçalışma ortamı. Öğe seçilirse pencere çalışma ortamında bulunur Akım dizin Menü görüşçalışma ortamı.
Geçerli dizin listeden seçilir. Listede yoksa, iletişim kutusundan eklenebilir. Araştır için Dosya, listenin sağ tarafında bulunan butona tıklanarak çağrılır. Geçerli dizinin içeriği dosya tablosunda görüntülenir.

Arama yolları iletişim kutusunda tanımlanır Ayarlamak Yol noktadan erişilen yol gezgini Ayarlamak Yol Menü Dosyaçalışma ortamı.

Bir dizin eklemek için düğmesine tıklayın Ekle Dosya Araştır için Yol gerekli dizini seçin. Tüm alt dizinleri ile bir dizin eklemek, butona tıklanarak gerçekleştirilir. Alt Klasörlerle Ekle. MATLAB arama yol. Arama sırası, bu alandaki yolların konumuna karşılık gelir ve listenin en üstünde yer alan dizin ilk önce bakar. Arama sırası değiştirilebilir veya bir dizine giden yol tamamen silinebilir, bunun için alanda dizini seçin MATLAB arama yol ve aşağıdaki düğmeleri kullanarak konumunu belirleyin:
Hareket ile Tepe - listenin en üstüne git;
Hareket Yukarı - bir pozisyon yukarı hareket ettirin;
Kaldırmak - listeden çıkarın;
Hareket Aşağı - bir pozisyon aşağı hareket ettirin;
Hareket ile Alt - listenin en altına koyun.

4. Yolları ayarlamak için komutlar.

MatLab 6'da yolları ayarlama adımları .x komutlarla çoğaltılır. Geçerli dizin cd komutuyla ayarlanır, örneğin cd c:\users\igor. Bağımsız değişken olmadan çağrılan cd komutu, geçerli dizine giden yolu yazdırır. Yolları ayarlamak için, iki bağımsız değişkenle çağrılan path komutunu kullanın:

yol (yol, "c: \ users \ igor") - en düşük arama önceliğine sahip c: \ users \ igor dizinini ekler;
yol ("c: \ users \ igor", yol) - en yüksek arama önceliğine sahip c: \ users \ igor dizinini ekler.

Path komutunu argüman olmadan kullanmak, ekranda görüntülenen arama yollarının bir listesini verir. rmpath komutunu kullanarak bir yolu listeden kaldırabilirsiniz:

rmpath ("c: \ users \ igor"), c: \ users \ igor dizinine giden yolu yollar listesinden kaldırır.

Açıklama 3

Özellikle amacından emin olmadığınız dizinlere giden yolları gereksiz yere silmeyin. Kaldırma, MatLab'da tanımlanan bazı fonksiyonların kullanılamaz hale gelmesine neden olabilir.

Örnek. Diskin kök dizininde oluşturun NS(veya öğrencilerin kendi dizinlerini oluşturmalarına izin verilen başka bir disk veya dizin) soyadınızla bir dizin, örneğin WORK_IVANOV ve mydemo.m adının altına mydemo.m M dosyasını buraya yazın. Dosyanın yollarını ayarlayın ve dosyaya komut satırından erişilebilir olduğunu gösterin. Sonuçları laboratuvar raporunda bildirin.

Çözüm seçeneği:

1. Diskin kök dizininde NS WORK_IVANOV dizini oluşturulur.
2. M-dosyası mydemo.m, mydemo3.m adı altında WORK_IVANOV dizinine yazılır.
3. Bir iletişim kutusu açılır. Ayarlamak Yol Menü Dosyaçalışma ortamı MatLab.
4. Düğmeye basılır Ekle Dosya ve görünen iletişim kutusunda Araştır için Yol WORK_IVANOV dizini seçilir.
5. Tüm alt dizinleri ile bir dizin eklemek, düğmesine basılarak gerçekleştirilir. Ekle ile birlikte Alt klasörler. Eklenen dizine giden yol, alanda görünür MATLAB arama yol.
6. Yolu ezberlemek için tuşuna basın. Kaydetmek iletişim kutusu Ayarlamak Yol.
7. Komut satırından mydemo3 komutunu yazarak tüm eylemlerin doğruluğunu kontrol edin. Ekranda bir grafik penceresi görünecektir.

5. Dosya işlevleri

Yukarıdaki dosya programları bir dizi MatLab komutlarıdır, girdi ve çıktı argümanları yoktur. Sayısal yöntemleri kullanmak için ve MatLab'da kendi uygulamalarınızı programlarken, giriş argümanları ile gerekli eylemleri gerçekleştiren ve sonucu çıktı argümanlarında döndüren dosya fonksiyonlarını oluşturabilmeniz gerekir. Bu alt bölümde, dosya işlevleriyle nasıl çalışacağınızı anlamanıza yardımcı olacak birkaç basit örnek tartışılmaktadır. Dosya prosedürleri gibi dosya işlevleri M-dosya düzenleyicisinde oluşturulur.

5.1. Bir giriş argümanıyla dosya işlevleri

Hesaplamalarda genellikle işlevi kullanmanın gerekli olduğunu varsayalım.

Bir kez bir dosya işlevi yazmak ve ardından bu işlevi değerlendirmek için gerekli olan her yerde onu çağırmak mantıklıdır. M-dosya düzenleyicide aç yeni dosya ve listeleme metnini yazın

f fonksiyonu = eğlencem (x)
f = exp (-x) * sqrt ((x ^ 2 + 1) / (x ^ 4 + 0.1));

İlk satırdaki kelime işlevi şunu belirtir: bu dosya bir fonksiyon dosyası içerir. İlk satır fonksiyon başlığı, hangi ev sahibi fonksiyon adı ve giriş ve çıkış argümanlarının listeleri. Listede gösterilen örnekte, işlev adı myfun'dur, bir giriş argümanı x'tir ve bir çıkış f'dir. başlık takip ediyor fonksiyon gövdesi(içinde bu örnek bir satırdan oluşur), burada değeri hesaplanır. Hesaplanan değerin f'ye yazılması önemlidir. Gereksiz bilgilerin ekranda görüntülenmesini önlemek için noktalı virgül eklenmiştir.

Şimdi dosyayı çalışma dizininize kaydedin. Lütfen öğenin seçiminin Kaydetmek veya Kaydetmek olarak Menü Dosya alanında dosyayı kaydetmek için bir iletişim kutusunun görünümüne yol açar Dosya isim ki bu zaten myfun adını içeriyor. Değiştirmeyin, fonksiyon dosyasını önerilen adla bir dosyaya kaydedin.

Artık oluşturulan işlev, örneğin komut satırından yerleşik sin, cos ve diğerleri ile aynı şekilde kullanılabilir:

"Y = eğlencem (1.3)
Y =
0.2600

Kendi işlevleri, bir program dosyasından ve başka bir dosya işlevinden çağrılabilir.

Bir uyarı

İşlev dosyasını içeren dizin güncel olmalıdır veya bunun yolu arama yollarına eklenmelidir, aksi takdirde MatLab işlevi bulamaz veya onun yerine aynı ada sahip başka birini çağırır (eğer mevcut dizinlerde bulunuyorsa). arama için).

Listede gösterilen dosya işlevinin önemli bir dezavantajı vardır. Bir diziden fonksiyon değerlerini hesaplamaya çalışmak, yerleşik fonksiyonları değerlendirirken olduğu gibi bir değerler dizisi değil, bir hata ile sonuçlanır.

"X =;
"Y = eğlencem (x)
??? ==> ^ kullanılırken hata oluştu
Matris kare olmalıdır.
==> C: \ MATLABRll \ work \ myfun.m'de hata
2. satırda ==> f = exp (-x) * sqrt ((x ^ 2 + 1) / (x ^ 4 + 1));

Dizilerle çalışmayı okuduysanız, bu eksikliğin giderilmesi zorluklara neden olmaz. Bir fonksiyonun değerini hesaplarken element bazında işlemleri kullanmanız yeterlidir.
Aşağıdaki listede gösterildiği gibi işlevin gövdesini değiştirin (değişiklikleri myfun.m dosyasına kaydetmeyi unutmayın).

f fonksiyonu = eğlencem (x)
f = exp (-x) * sqrt ((x. ^ 2 + 1) ./ (x. ^ 4 + 0.1));

Şimdi myfun işlevinin argümanı bir sayı veya bir vektör veya bir değerler matrisi olabilir, örneğin:

"X =;
"Y = eğlencem (x)
Y =
0.2600 0.0001

myfun işlevinin çağrılmasının sonucunun yazıldığı y değişkeni, otomatik olarak gerekli boyutta bir vektör olur.

myfun işlevini komut satırından veya bir dosya programı kullanarak bir segment üzerine çizin:

x =;
y = eğlencem (x);
arsa (x, y)

MatLab, dosya işlevleriyle çalışmak için bir fırsat daha sağlar - bunları bazı komutların argümanları olarak kullanmak. Örneğin, bir grafik çizmek için kullanılır özel fonksiyon Yukarıdaki komut dizisinin yerini alan fplot. fplot çağrılırken, grafiğini çizmek istediğiniz fonksiyonun adı kesme işareti içine alınır, çizim limitleri iki elemanlı bir satır vektöründe belirtilir.

fplot ("benim eğlencem",)

Tutma ile aynı eksenlerde arsa ve fplot ile myfun grafiklerini çizin. Lütfen fplot ile çizilen grafiğin işlevin davranışını daha doğru yansıttığını unutmayın, çünkü fplot argümanın adımını kendisi seçer ve onu bölümler halinde azaltır. hızlı değişim görüntülenen işlev. Sonuçları laboratuvar raporunda bildirin.

5.2. Birden çok giriş argümanına sahip dosya işlevleri

Birkaç girdi argümanıyla dosya fonksiyonları yazmak, bir argüman durumundaki ile pratik olarak aynıdır. Tüm girdi bağımsız değişkenleri virgülle ayrılmış bir listeye yerleştirilir. Örneğin, aşağıdaki liste, üç boyutlu uzayda bir noktanın yarıçap vektörünün uzunluğunu hesaplayan bir dosya işlevi içerir.
Birkaç argümanla bir dosya fonksiyonunun listelenmesi

fonksiyon r = yarıçap3 (x, y, z)
r = kare (x. ^ 2 + y. ^ 2 + z. ^ 2);

»R = yarıçap3 (1, 1, 1)
R =
1.732

MatLab, birden çok girdi bağımsız değişkenine sahip işlevlere ek olarak, birden çok değer döndüren işlevler oluşturmanıza olanak tanır; birden fazla çıktı argümanına sahip olmak.

5.3. Birden çok çıktı bağımsız değişkenine sahip dosya işlevleri

Birden çok çıktı bağımsız değişkenine sahip dosya işlevleri, birden çok değer döndüren işlevleri değerlendirirken yararlıdır (matematikte bunlara denir vektör fonksiyonları). Çıktı bağımsız değişkenleri, virgülle ayrılmış olarak çıktı bağımsız değişkenleri listesine eklenir ve listenin kendisi köşeli parantez içine alınır. İyi bir örnek, bir zamanı saniye cinsinden saat, dakika ve saniyeye dönüştüren bir işlevdir. Bu dosya işlevi aşağıdaki listede gösterilmektedir.

Saniyeyi saat, dakika ve saniyeye çevirme fonksiyonunun listesi

fonksiyon = hms (sn)
saat = kat (sn / 3600);
dakika = kat ((sn-saat * 3600) / 60);
saniye = saniye-saat * 3600 dakika * 60;

Birkaç çıktı argümanıyla dosya işlevlerini çağırırken, sonuç uygun uzunlukta bir vektöre yazılmalıdır:

"[H, E, S] = hms (10000)
H =
2
M =
46
S =
40

6. MatLab'da programlamanın temelleri

Önceki alt bölümlerde kullanılan dosya fonksiyonları ve program dosyası programların en basit örnekleridir.İçlerinde bulunan tüm MatLab komutları sıralı olarak yürütülür. Daha birçok ciddi sorunu çözmek için, eylemlerin döngüsel olarak gerçekleştirildiği veya belirli koşullara bağlı olarak programların çeşitli bölümlerinin yürütüldüğü programlar yazmak gerekir. MatLab komutlarının yürütme sırasını belirleyen ana operatörleri ele alalım. Operatörler, hem dosya prosedürlerinde hem de karmaşık bir dallı yapıya sahip programlar oluşturmanıza izin veren işlevlerde kullanılabilir.

6.1. döngü operatörü için

Operatör, belirli sayıda tekrarlayan eylemi gerçekleştirmek üzere tasarlanmıştır. For ifadesinin en basit kullanımı aşağıdaki gibidir:

sayım için = başlangıç: adım: son
MatLab komutları
son

Burada count döngü değişkeni, start başlangıç ​​değeri, final son değer ve step ise döngüye her girildiğinde sayımın artırıldığı adımdır. Sayı sondan büyük olur olmaz döngü sona erer. Döngü değişkeni yalnızca tamsayı değerlerini değil, aynı zamanda herhangi bir işaretin gerçek değerlerini de alabilir. Bazı tipik örnekler kullanarak for döngüsü operatörünün kullanımını analiz edelim.
Parametreye bağlı olarak bir fonksiyon tarafından verilen bir eğri ailesi türetilmesi gereksin. -0.1 ila 0.1 arasındaki parametre değerleri için.
Dosya prosedürünün metnini M-dosya düzenleyicisine yazın ve FORdem1.m dosyasına kaydedin ve çalıştırın (M-dosya düzenleyicisinden veya komut satırından FORdem1 komutunu yazıp düğmesine basarak) ):

Bir eğri ailesi oluşturmak için % dosya programı
x =;
a = -0.1 için: 0.02: 0.1
y = exp (-a * x) * günah (x);
devam etmek
arsa (x, y)
son

Açıklama 4

M-dosya düzenleyicisi, ifadeleri otomatik olarak sol kenardan girintili olarak döngü içine yerleştirmeyi önerir. Programın metniyle çalışmanın rahatlığı için bu fırsatı kullanın.

FORdem1 yürütmesinin bir sonucu olarak, gerekli eğri ailesini içeren bir grafik penceresi görünecektir.

Toplamı hesaplamak için bir program dosyası yazın

Toplamı hesaplama algoritması, sonucun birikimini kullanır, yani. ilk başta toplam sıfıra eşittir ( S= 0), sonra bir değişkene k 1 girilir, 1 / hesaplanır k! eklenir S ve sonuç tekrar girilir S... Daha öte k bir artar ve son terim 1/10 olana kadar işlem devam eder!. Aşağıdaki listede gösterilen Fordem2 dosya programı, gerekli miktarı hesaplar.

Toplamı hesaplamak için Fordem2 dosya programının listesi

Toplamı hesaplamak için % dosya programı
% 1/1!+1/2!+ … +1/10!

Miktarı biriktirmek için S Sıfırlama
S = 0;
Döngüdeki miktarın % birikimi
k = 1:10 için
S = S + 1 / faktöriyel (k);
Son
% sonucu S komut penceresine çıkar

Program dosyasını M-file düzenleyicisine yazın, Fordem2.m dosyasındaki geçerli dizine kaydedin ve çalıştırın. Sonuç komut penceresinde görüntülenecektir, çünkü program dosyasının son satırında S değişkenin değerini çıktılamak için noktalı virgül olmadan bulunur S

Ara değerlerin görüntülenmesine neden olabilecek program dosyasındaki geri kalan satırların, komut penceresine çıktıyı bastırmak için noktalı virgülle sonlandırıldığına dikkat edin.

Yorum içeren ilk iki satır, program metninin geri kalanından yanlışlıkla boş bir satırla ayrılmamıştır. Kullanıcı, komut satırından help komutunu kullanarak Fordem2'nin ne yaptığı hakkında bilgi aldığında görüntülenenlerdir.

>> Fordem2'ye yardım edin
toplamı hesaplamak için dosya programı
1/1!+1/2!+ … +1/10!

Dosya programlarını ve dosya fonksiyonlarını yazarken yorumları ihmal etmeyin!
Program dosyasında kullanılan tüm değişkenler üretim ortamında kullanılabilir hale gelir. Bunlara küresel değişkenler denir. Öte yandan, çalışma ortamında girilen tüm değişkenler bir program dosyasında kullanılabilir.

Bir öncekine benzer, ancak değişkene bağlı olarak toplamı hesaplama problemini düşünün. x

Fordem2 dosya programında bu miktarı hesaplamak için for döngüsü içindeki satırı şu şekilde değiştirmeniz gerekir:

S = S + x ^ K / faktöriyel (k);

Programı başlatmadan önce değişkeni tanımlamanız gerekir. x aşağıdaki komutlarla komut satırında:

>> x = 1.5;
>> Fordem2
S =
3.4817

Olarak x Fordem2 dosya programında toplamı toplamak için eleman-eleman işlemleri kullanıldığından, bu bir vektör veya bir matris olabilir.

Fordem2'ye başlamadan önce, değişkene atadığınızdan emin olun. x bir değer ve örneğin on beş terimin toplamını hesaplamak için program dosyasının metninde değişiklik yapmanız gerekecektir. Girdi bağımsız değişkenleri olarak bir değeri olan genel bir dosya işlevi yazmak çok daha iyidir. x ve toplamın üst sınırı ve hafta sonu toplamın değeridir S(x). sumN dosya işlevi aşağıdaki listede gösterilmektedir.

Toplamı hesaplamak için dosya fonksiyonunun listesi

fonksiyon S = toplamN (x, N)
Toplamı hesaplamak için % dosya işlevi
% x / 1! + x ^ 2/2! +… + x ^ N / H!
% kullanım: S = toplamN (x, N)

Tutarı biriktirmek için S sıfırlama yüzdesi
S = 0;
Döngüdeki miktarın % birikimi
m = 1: 1: N için
S = S + x ^ M / faktöriyel (m);
son

Kullanıcı, komut satırına help sumN yazarak sumN işlevini kullanmayı öğrenebilir. Komut penceresi, dosya işlevinin metninden boş bir satırla ayrılmış, yorumlarla birlikte ilk üç satırı görüntüler.

Dosya fonksiyonunun değişkenlerinin global olmadığına dikkat edin (sumN dosya fonksiyonunda m). Komut satırından m'nin değerini görüntülemeye çalışmak, m'nin tanımsız olduğunu belirten bir mesajla sonuçlanır. Çalışma ortamında, komut satırından veya dosya programında tanımlanan aynı ada sahip global bir değişken varsa, dosya işlevindeki yerel değişkenle hiçbir şekilde bağlantılı değildir. Kural olarak, algoritmada kullanılan değişkenlerin çalışma ortamının aynı global değişkenlerinin değerlerini değiştirmemesi için kendi algoritmalarınızı dosya fonksiyonları şeklinde tasarlamanız daha iyidir.

For döngüleri iç içe olabilir, iç içe döngülerin değişkenleri farklı olmalıdır.

For döngüsü, sayı önceden belirlendiğinde tekrarlayan, benzer eylemler gerçekleştirmek için kullanışlıdır. Daha esnek bir while döngüsü, bu sınırlamayı aşmanıza olanak tanır.

6.2. while döngüsü ifadesi

Önceki paragraftaki örneğe benzer şekilde toplamı hesaplamak için bir örnek düşünelim. Verilen bir serinin toplamını bulmak gerekir. x(seri genişletme):
.

Terimler çok küçük olmadığı sürece, örneğin daha fazla modülde olduğu sürece toplam toplanabilir.Terim sayısı önceden bilinmediğinden burada for döngüsü vazgeçilmezdir. Çıkış yolu, döngü koşulu karşılandığı sürece çalışan bir while döngüsü kullanmaktır:

while döngüsü koşulu
MatLab komutları
son

Bu örnekte, döngü koşulu, geçerli terimin daha büyük olmasını sağlar. Bu durumu kaydetmek için büyüktür işareti (>) kullanılır. Bir serinin toplamını hesaplayan mysin dosya fonksiyonunun metni aşağıdaki listede gösterilmektedir.

Seri genişletme ile sinüsü hesaplayan mysin dosya fonksiyonunun listesi

fonksiyon S = mysin (x)
% Seri genişleme ile sinüsü hesapla
% Kullanım: y = mysin (x), -pi

S = 0;
k = 0;
while abs (x. ^ (2 * k + 1) / faktöriyel (2 * k + 1))> 1.0e-10
S = S + (-1) ^ k * x. ^ (2 * k + 1) / faktöriyel (2 * k + 1);
k = k + 1;
son

while döngüsünün for'dan farklı olarak bir döngü değişkeni olmadığını unutmayın, bu nedenle döngü başlamadan önce sıfır atamak zorunda kaldık ve döngü içinde k'yi bir artırdık.
while döngüsü koşulu yalnızca > işaretinden fazlasını içerebilir. Döngünün yürütülmesi için koşulları ayarlamak için, tabloda verilen ilişkinin diğer işlemlerine de izin verilir. 1.

Tablo 1. İlişki işlemleri

Daha karmaşık koşullar, mantıksal işleçler kullanılarak belirtilir. Örneğin, koşul iki eşitsizliğin aynı anda yerine getirilmesinden oluşur ve mantıksal operatör kullanılarak yazılır ve

ve (x> = -1, x< 2)

veya eşdeğer olarak & ile

(x> = -1) & (x< 2)

Mantıksal operatörler ve kullanım örnekleri tabloda verilmiştir. 2.

Tablo 2. Mantıksal operatörler

Şebeke

MatLab'a Yazma

eşdeğer gösterim

Mantıksal "VE"

ve (x< 3, k == 4)

(x< 3) & (k == 4)

Mantıksal "VEYA"

Veya (x == 1, x == 2)

(x == 1) | (x == 2)

"DEĞİL" inkar

Sonsuz bir serinin toplamını hesaplarken, terim sayısını sınırlamak mantıklıdır. Eğer seri, elemanları sıfıra meyletmediği için ıraksarsa, o zaman mevcut terimin küçük bir değeri için koşul hiçbir zaman yerine getirilemez ve program döngüye girer. Toplama işlemini, mysin dosya fonksiyonunun while döngüsünün koşuluna terim sayısına bir sınır ekleyerek gerçekleştirin:

while (mutlak (x. ^ (2 * k + 1) / faktöriyel (2 * k + 1))> 1.0e-10) & (k<=10000))

veya eşdeğer biçimde

while ve (mutlak (x. ^ (2 * k + 1) / faktöriyel (2 * k + 1))> 1.0e-10), k<=10000)

Tekrarlayan eylemlerin döngüler biçiminde düzenlenmesi programı basit ve anlaşılır kılar; ancak, genellikle belirli koşullara bağlı olarak bir veya daha fazla komut bloğunun yürütülmesi gerekir, yani. algoritma dallanma kullanın.

6.3. Koşullu if ifadesi

koşullu operatör Eğer komutları yürütmek için bir dallanma algoritması oluşturmanıza olanak tanır, burada belirli koşullar karşılandığında ilgili operatör bloğu veya MatLab komutları çalışır.

if ifadesi, belirli bir koşul yerine getirildiğinde bir komut bloğunu yürütmek için basit biçiminde veya dallanma algoritmaları yazmak için bir if-elseif-else yapısında kullanılabilir.
İfadenin değerlendirilmesine izin verin. Bölge alanında hesaplamalar yaptığınızı ve sonucun karmaşık bir sayı olduğuna dair bir uyarı görüntülemek istediğinizi varsayalım. Fonksiyonu değerlendirmeden önce, x argümanının değerini kontrol etmeli ve x modülü bir taneyi geçmiyorsa komut penceresinde bir uyarı yazdırmalısınız. Burada, uygulaması en basit durumda şöyle görünen koşullu operatörü kullanmak gerekir:

eğer koşul
MatLab komutları
son

Koşul sağlanırsa if ve end arasına yerleştirilen MatLab komutları uygulanır, koşul sağlanmazsa bitişten sonra yer alan komutlara geçiş gerçekleşir. Bir koşul kaydedilirken tabloda gösterilen işlemler kullanılır. 1.

Argümanın değerini kontrol eden dosya işlevi aşağıdaki listede gösterilmektedir. Uyarı komutu, komut penceresinde bir uyarı görüntülemek için kullanılır.

Argümanın değerini kontrol eden Rfun dosya fonksiyonunun listesi

f fonksiyonu = Rfun (x)
% sqrt hesaplar (x ^ 2-1)
Sonuç karmaşıksa % bir uyarı görüntüler
% kullanım y = Rfun (x)

% kontrol argümanı
eğer abs (x)<1
uyarı ("sonuç karmaşık")
son
% fonksiyon değerlendirmesi
f = kare (x ^ 2-1);

Şimdi birden az bir argümanda Rfun'u çağırmak, komut penceresine bir uyarı verecektir:

>> y = Rfun (0.2)
sonuç karmaşık
y =
0 + 0.97979589711327i

Rfun işlev dosyası yalnızca değerinin karmaşık olduğu konusunda uyarır ve onunla yapılan tüm hesaplamalar devam eder. Karmaşık sonuç bir hesaplama hatası anlamına geliyorsa, uyarı yerine error komutu kullanılarak fonksiyon sonlandırılmalıdır.

6.4. Dallanma operatörü if-elseif-else

Genel olarak if-elseif-else şube operatörünün uygulaması şu şekildedir:

eğer koşul 1
MatLab komutları
başka koşul 2
MatLab komutları
başka koşul 3
MatLab komutları
. . . . . . . . . . .
başka bir koşul N
MatLab komutları
Başka
MatLab komutları
son

Birinin veya diğerinin performansına bağlı olarak n koşullarda, programın ilgili dalı, aşağıdakilerden hiçbiri çalışmıyorsa çalışır. n koşullar, ardından else'den sonra yerleştirilen MatLab komutları uygulanır. Şubelerden herhangi birinin yürütülmesinden sonra operatör çıkar. İstediğiniz kadar şube olabilir veya sadece iki tane olabilir. İki dal olması durumunda, sondaki else kullanılır ve elseif atlanır. İfade her zaman end ile bitmelidir.
Aşağıdaki listede if-elseif-else operatörünün kullanımına bir örnek gösterilmektedir.

ifdem (a) işlevi
if-elseif-else operatörünün kullanımına ilişkin % örnek

eğer (a == 0)
uyarı ("sıfıra eşit")
başka bir == 1
uyarı ("bire eşittir")
başka bir == 2
uyarı ("ikiye eşit")
aksi takdirde a> = 3
uyarı ("a, üçten büyük veya üçe eşittir")
Başka
uyarı ("a üçten küçüktür ve sıfır, bir, iki'ye eşit değildir")
son

6.5. Şube operatörü değiştirmek

switch ifadesi, çoklu seçim veya dallanma gerçekleştirmek için kullanılabilir. . if-elseif-else deyimine bir alternatiftir. Genel olarak, dallanma operatörü anahtarının uygulaması şöyle görünür:

switch_expression'ı değiştir
vaka değeri 1
MatLab komutları
vaka değeri 2
MatLab komutları
. . . . . . . . . . .
vaka değeri N
MatLab komutları
durum (değer N + 1, değer N + 2, ...)
MatLab komutları
. . . . . . . . . . . .
durum (NM değeri + 1, NM değeri + 2, ...)
aksi halde
MatLab komutları
son

Bu operatörde, önce switch_expression değeri değerlendirilir (skaler sayısal bir değer veya bir karakter dizisi olabilir). Bu değer daha sonra şu değerlerle karşılaştırılır: 1 değeri, 2 değeri,…, N değeri, N + 1 değeri, N + 2 değeri,…, NM + 1 değeri, NM + 2,… (sayısal da olabilir) veya dize) ... Bir eşleşme bulunursa, ilgili case anahtar sözcüğü yürütüldükten sonra MatLab komutları verilir. Aksi takdirde, aksi ve end anahtar kelimeleri arasında yer alan MatLab komutları yürütülür.

Case anahtar sözcüğüyle herhangi bir sayıda satır olabilir, ancak aksi anahtar sözcüğüyle bir satır olmalıdır.

Dallardan herhangi birinin yürütülmesinden sonra anahtardan çıkılırken diğer durumlarda belirtilen değerler kontrol edilmez.

Aşağıdaki örnek, anahtarın kullanımını göstermektedir:

işlev azaltma anahtarı (x)
a = 10/5 + x
değiştir
dava 1
uyarı ("a = -1")
durum 0
uyarı ("a = 0")
dava 1
uyarı ("a = 1")
durum (2, 3, 4)
uyarı ("a 2 veya 3 veya 4'tür")
aksi halde
uyarı ("a, -1, 0, 1, 2, 3, 4'e eşit değildir")
son

>> x = -4
değiştirme anahtarı (x)
bir =
1
uyarı: a = 1
>> x = 1
değiştirme anahtarı (x)
bir =
6
uyarı: a eşittir -1, 0, 1, 2, 3, 4

6.6. Döngü kesme ifadesi kırmak

Döngüsel hesaplamaları düzenlerken, döngü içindeki hataları önlemek için özen gösterilmelidir. Örneğin, size tam sayılardan oluşan bir x dizisi verildiğini ve y (i) = x (i + 1) / x (i) kuralına göre yeni bir y dizisi oluşturmanız gerektiğini varsayalım. Açıkçası, görev bir for döngüsü kullanılarak gerçekleştirilebilir. Ancak orijinal dizinin öğelerinden biri sıfıra eşitse, bölme inf ile sonuçlanır ve sonraki hesaplamalar işe yaramaz olabilir. Bu durum, x(i)'nin mevcut değeri sıfıra eşitse döngüden çıkılarak önlenebilir. Aşağıdaki kod parçacığı, bir döngüyü kesmek için break ifadesinin kullanımını gösterir:

x = 1:20 için
z = x-8;
eğer z == 0
kırmak
son
y = x / z
son

z 0 olur olmaz döngü iptal edilir.

break ifadesi, yürütmeyi zamanından önce kesmenize olanak tanır döngüler için ve süre. Bu döngülerin dışında break deyimi çalışmaz.

Break ifadesi iç içe bir döngüde kullanılıyorsa, yalnızca iç döngüden çıkar.

V MATLAB ortamı birkaç çalışma modu vardır. En kolayı komutları doğrudan komut penceresine girmektir ( Komut Penceresi).

MATLAB Komut Penceresi

Program arayüzünde görünmüyorsa açın. Komut penceresini menüden bulabilirsiniz. masaüstü Komut Penceresi.

Örneğin bu penceredeki komutları arka arkaya girelim.

X =; y = kare (x); arsa (y);

ve "Enter" tuşuna basın ( Girmek). Program anında X değişkenini oluşturacak, Y değişkenini oluşturacak ve verilen fonksiyona göre değerlerini hesaplayacak ve ardından grafiğini çizecektir.

Komut penceresinde klavyenin yukarı ve aşağı okları ile girilen komutlar arasında geçiş yapabilir, hemen değiştirebilir ve tuşuna basarak Girmek MATLAB ortamını yürütme için gönderin. Sol ve sağ okları kullanarak girilen komutta gezinebilir ve düzenleyebilirsiniz. Komutun sonunda noktalı virgül varsa, sonuç hesaplanır ancak komut penceresinde görüntülenmez; aksi takdirde komutun sonucu hemen görüntülenecektir. MATLAB ortamındaki herhangi bir işlev için ayrıntılı yerleşik yardım vardır. Örneğin, komut için yardım almak için komplo, bu komutu seçin, üzerine sağ tıklayın ve açılan içerik menüsünde Seçim Yardımı veya tuşuna basın F1.

MATLAB Komutları için Yardım Alma

Rahat? Şüphesiz. Ve en önemlisi - çok hızlı. Tüm bu işlemler birkaç saniye sürer.

Peki ya daha karmaşık ekip organizasyonuna ihtiyacınız varsa? Bazı komutların döngüsel olarak yürütülmesine ihtiyacınız varsa? Komutları birer birer manuel olarak girmek ve daha sonra bunları geçmişte uzun süre aramak oldukça sıkıcı olabilir.

2 editörle çalışmak MATLAB ortamında

Bir bilim insanı, mühendis veya öğrenci için hayatı kolaylaştırmak için editör penceresi ( Editör). Menü üzerinden editör penceresini açalım masaüstü Editör.

Editör penceresinde, yeni değişkenler oluşturabilir, grafikler oluşturabilir, programlar (komut dosyaları) yazabilir, diğer ortamlarla değiş tokuş için bileşenler oluşturabilir, bir kullanıcı arabirimi (GUI) ile uygulamalar oluşturabilir ve mevcut olanları düzenleyebilirsiniz.

Şu anda gelecekte yeniden kullanım için işlevler içeren bir program yazmakla ilgileniyoruz. Bu nedenle, menüye gidiyoruz Dosya editör ve seçin Yeni M-Dosyası.


MATLAB ortamındaki M dosyaları, program metni (komut dosyaları) veya kullanıcı tanımlı işlevler içeren dosyalardır.

Editörde basit bir fonksiyon yazalım draw_plot:

fonksiyon çiz_çizgisi (x)% İlk fonksiyonu belirledik: y = log (x); % İlk grafiği oluşturuyoruz: alt grafik (1, 2, 1), çizim (x, y); % İkinci fonksiyonu belirledik: y = sqrt (x); % İkinci grafiği oluşturuyoruz: alt grafik (1, 2, 2), çizim (x, y);

Komut penceresine geri dönün.

Gereksiz bilgilerin dikkatimizi dağıtmaması için komut geçmişini temizleyebilirsiniz. Bunu yapmak için komut giriş alanına sağ tıklayın ve öğeyi seçin Komut Penceresini Temizle.

X değişkeni önceki deneyden sonra kaldı, değiştirmedik veya silmedik. Bu nedenle, hemen komut penceresine girebilirsiniz:

Draw_plot(x);

MATLAB'ın dosyadan fonksiyonumuzu okuyacağını ve bir grafik çizerek uygulayacağını göreceksiniz.


MATLAB, programı çalıştırırken bir mesaj görüntülerse, "Double" türündeki giriş bağımsız değişkenleri için tanımsız işlev veya yöntem "draw_plot".(yani aradı bilinmeyen fonksiyon), yeşil ok düğmesine tıklayın ( Çalıştırmak) veya editör menüsü aracılığıyla: hata ayıklama draw_plot.m dosyasını çalıştırın... MATLAB, programımızda (draw_plot.m) dosyayı içeren dizinin bir çalışma dizini olmadığını söyleyecektir. İletişim kutusundaki düğmeyi tıklayın Yola Ekle, ile MATLAB paketiçalışma yoluna bir dizin ekledi ve M dosyamızı kullanabilirdi. Bundan sonra program normal şekilde başlamalıdır.

MATLAB ortamı, üst düzey bir komut yorumlayıcı içerir, grafik sistemi, uzantı paketleri ve C'de uygulanır. Tüm işler, matlab.exe programı başlatıldığında görünen Komut Penceresi aracılığıyla düzenlenir. Çalışma sırasında veriler bellekte (Çalışma Alanı) bulunur, eğrileri, yüzeyleri ve diğer grafikleri görüntülemek için grafik pencereler oluşturulur.

Hesaplamalar, diyalog modunda komut penceresinde gerçekleştirilir. Kullanıcı, yürütme için MATLAB dilinde komutlar girer veya metinler içeren dosyaları başlatır. Yorumlayıcı girişi işler ve sonuçları görüntüler: sayısal ve dize verileri, uyarılar ve hata mesajları. Giriş satırı >> ile işaretlenmiştir. Komut penceresi sayıları, klavyeden girilen değişkenleri ve hesaplamaların sonuçlarını görüntüler. Değişken isimleri bir harfle başlamalıdır. = işareti bir atama işlemine karşılık gelir. Enter tuşuna basılması, sistemin ifadeyi değerlendirmesine ve sonucu görüntülemesine neden olur. Giriş satırına klavyeden yazın:

Enter tuşuna basın, hesaplamanın sonucu ekranda görüntüleme alanında görünecektir:

Geçerli oturum sırasında hesaplanan tüm değişken değerler, MATLAB Çalışma Alanı adı verilen bilgisayar belleğinin özel olarak ayrılmış bir alanında saklanır. clc komutu, komut penceresinin içeriğini silebilir, ancak çalışma alanının içeriğini etkilemez. Geçerli oturumda bir dizi değişkeni kaydetmeye gerek olmadığında, bunlar clear veya clear komutu (ad1, ad2, ...) kullanılarak bilgisayar belleğinden silinebilir. İlk komut tüm değişkenleri bellekten kaldırır ve ikincisi ad1 ve ad2 adlı değişkenleri kaldırır. who komutu, sistemin çalışma alanındaki mevcut tüm değişkenlerin bir listesini görüntüleyebilir. Sistemin mevcut çalışma alanından herhangi bir değişkenin değerini görüntülemek için adını yazıp Enter tuşuna basmanız yeterlidir.

MATLAB oturumunun bitiminden sonra önceden hesaplanmış tüm değişkenler kaybolur. MATLAB çalışma alanının içeriğini bilgisayar diskindeki bir dosyaya kaydetmek için, Dosya / Çalışma Alanını Farklı Kaydet ... menü komutunu çalıştırmanız gerekir. Varsayılan olarak, dosya adı uzantısı mat'tır, bu nedenle bu tür dosyalara genellikle MAT dosyaları denir. Diske önceden kaydedilmiş çalışma alanını bilgisayar belleğine yüklemek için menü komutunu çalıştırmanız gerekir: Dosya / Çalışma Alanını Yükle ....

Gerçek sayılar ve çift veri türü

MATLAB, makine seviyesindeki her şeyi temsil eder. gerçek sayılar mantis ve üs ile verilir, örneğin 2.85093E + 11, burada E harfi 10'a eşit olan kuvvetin tabanını belirtir. Bu temel veri tipine double denir. MATLAB, ondalık noktadan sonra yalnızca dört ondalık basamak görüntüleyen gerçek sayıların çıktısını almak için varsayılan olarak kısa biçimi kullanır.

Klavyeden bir örnek girin:

"Çözünürlük = 5.345 * 2.868 / 3.14-99.455 + 1.274

Hesaplamanın sonucunu alın:

Res gerçek sayısının tam bir temsilini istiyorsanız, klavyeden komutu girin:

Enter'a basın ve daha fazla ayrıntı alın:

öz = -93.29900636942675

Artık tüm hesaplama sonuçları bu oturum sırasında MATLAB ortamında çok yüksek bir doğrulukla görüntülenecektir. Mevcut oturumu sonlandırmadan önce eski kesinliğe dönmek gerekirse Görsel sunum komut penceresinde gerçek sayılar, komutu girmeniz ve çalıştırmanız gerekir (Enter tuşuna basarak):

Tamsayılar, sistem tarafından komut penceresinde tamsayı olarak görüntülenir.

Aritmetik işlemler double türündeki gerçek sayılar ve değişkenler üzerinde gerçekleştirilir: toplama +, çıkarma -, çarpma *, bölme / ve üs alma ^. Aritmetik işlemleri gerçekleştirmede öncelik normaldir. Aynı önceliğe sahip işlemler soldan sağa sırayla gerçekleştirilir, ancak parantezler bu sırayı değiştirebilir.

Komut penceresinde bazı ifadelerin değerlendirilmesinin sonucunu görmeye gerek yoksa, girilen ifadenin sonuna noktalı virgül koyun ve ardından Enter tuşuna basın.

MATLAB sistemi, gerçek sayılarla hesaplamalar için tüm temel temel işlevleri içerir. Herhangi bir işlev, adı, girdi bağımsız değişkenlerinin bir listesi (virgülle ayrılırlar ve işlev adından sonra parantez içindedir) ve hesaplanmış (döndürülen) bir değer ile karakterize edilir. Help elfun komutu kullanılarak sistemde mevcut olan tüm temel matematiksel fonksiyonların bir listesi elde edilebilir. Ek 1, standart gerçek argüman fonksiyonlarını listeler.

Ark sinüs fonksiyonunun hesaplanmasını içeren bir ifadeyi değerlendirin:

Aşağıdaki çıktıyı aldığınızdan emin olun:

"pi" sayısına karşılık gelir. MATLAB, pi:pi hesaplamak için özel bir notasyona sahiptir. (MATLAB sistem değişkenlerinin bir listesi Ek 2'dedir).

MATLAB ayrıca boole işlevlerine, tamsayı aritmetiğiyle ilgili işlevlere sahiptir (en yakın tamsayıya yuvarlama: yuvarlama, bir sayının kesirli kısmını kesme: düzeltme). Ayrıca mod işlevi de vardır - işareti dikkate alarak bölmenin geri kalanı, işaret - sayının işareti, lcm - en küçük ortak kat, izinler - permütasyon sayısının hesaplanması ve chooosek - kombinasyon sayısı, Ve bircok digerleri. Fonksiyonların çoğu, tüm gerçek sayılar kümesinden farklı bir etki alanına sahiptir.

Double tipi işlenenler üzerinde aritmetik işlemlere ek olarak, ilişkisel ve mantıksal işlemler de yapılır. İlişkisel işlemler, büyüklük olarak iki işleneni karşılaştırır. Bu işlemler aşağıdaki karakterlerle veya karakter kombinasyonlarıyla yazılmıştır (Tablo 1):

tablo 1


Oran işlemi doğruysa değeri 1, yanlışsa 0'dır. İlişki işlemleri aritmetik işlemlerden daha düşük önceliğe sahiptir.

Klavyede ilişki işlemleriyle ifadeyi yazın ve hesaplayın

"A=1; b = 2; c = 3;

»Çözünür = (a

Aşağıdaki çıktıyı alacaksınız:

Gerçek sayılar üzerindeki mantıksal işlemler Tablo 2'de listelenen işaretlerle belirtilmiştir:

Tablo 2


& | ~
VE VEYA OLUMSUZ

Bu işlemlerin ilk ikisi ikili (iki işlenen) ve sonuncusu tekli (tek işlenen). Mantık işlemleri, işlenenlerini "doğru" (sıfıra eşit değil) veya "yanlış" (sıfıra eşit) olarak ele alır. AND işleminin her iki işleneni de doğruysa (sıfıra eşit değilse), bu işlemin sonucu 1'dir (doğru); diğer tüm durumlarda, "VE" işlemi 0 ("yanlış") değerini üretir. VEYA işlemi, yalnızca her iki işlenen de yanlışsa (sıfıra eşitse) 0 (yanlış) üretir. DEĞİL işlemi yanlışı doğruya çevirir. Mantıksal işlemler en düşük önceliğe sahiptir.

Karmaşık sayılar ve karmaşık fonksiyonlar

Gerçek değişkenler gibi karmaşık değişkenler otomatik olarak double türündedir ve herhangi bir ön tanım gerektirmez. i veya j harfleri hayali birimi yazmak için ayrılmıştır. Hayali birimin önündeki katsayının bir sayı değil, bir değişken olması durumunda, aralarında çarpma işaretini kullandığınızdan emin olun. Dolayısıyla karmaşık sayılar aşağıdaki gibi yazılabilir:

"2 + 3i; -6.789 + 0.834e-2 * i; 4-2j; x + y * ben;

Hemen hemen tüm temel işlevler karmaşık argümanlarla hesaplanabilir. İfadeyi değerlendirin:

»Res = günah (2 + 3i) * atan (4i) / (1 -6i)

Sonuç:

1.8009 - 1.91901

Aşağıdaki işlevler karmaşık sayılarla çalışmak için özel olarak tasarlanmıştır: abs (bir karmaşık sayının mutlak değeri), conj (karmaşık eşlenik sayı), imag (karmaşık sayının sanal kısmı), gerçek (karmaşık sayının gerçek kısmı), açı (karmaşık bir sayının argümanı), gerçek (sayı geçerliyse "Doğru"). Karmaşık bir değişkenin işlevleri Ek 1'de listelenmiştir.

Aritmetik işlemlerle ilgili olarak, karmaşık sayılar için (gerçek sayılarla karşılaştırıldığında) yeni bir şey söylenemez. Aynısı "eşit" ve "eşit değil" bağıntısının işlemleri için de geçerlidir. Geri kalan ilişki işlemleri, yalnızca bu işlenenlerin gerçek kısımlarına dayalı bir sonuç üretir.

İfadeyi girin, sonucu alın ve açıklayın:

»C = 2 + 3i; d = 2i; »C> d

Mantık işlemleri, işlenenleri sıfıra eşitse yanlış olarak ele alır. Karmaşık işlenenin (gerçek veya sanal) en az bir kısmı sıfıra eşit değilse, böyle bir işlenen doğru olarak kabul edilir.

sayısal diziler

Tek boyutlu bir dizi oluşturmak için köşeli parantezlerle gösterilen birleştirme işlemini kullanabilirsiniz. Dizi öğeleri parantezler arasına yerleştirilir ve birbirlerinden bir boşluk veya virgülle ayrılır:

"Al =; d =;

Dizinin tek bir öğesine erişmek için, öğenin adından sonra öğenin dizinini parantez içinde gösteren dizin oluşturma işlemini kullanmanız gerekir.

İndeksleme ve atama işlemleri uygulayarak önceden oluşturulmuş bir dizinin elemanlarını değiştirebilirsiniz. Örneğin, girerek:

dizinin üçüncü elemanını değiştireceğiz. Veya girişten sonra:

"Al (2) = (al (1) + al (3)) / 2;

dizinin ikinci elemanı, birinci ve üçüncü elemanların aritmetik ortalamasına eşit olacaktır. Var olmayan bir öğe yazmak oldukça kabul edilebilir - bu, zaten var olan bir diziye yeni bir öğe eklemek anlamına gelir:

Bu işlemden sonra a1 dizisine uzunluk fonksiyonunu uygulayarak, dizideki eleman sayısının dörde çıktığını görüyoruz:

Aynı eylem - "a1 dizisini uzatma" - birleştirme işlemi kullanılarak gerçekleştirilebilir:

Tüm öğelerini ayrı ayrı yazarak bir dizi tanımlayabilirsiniz:

"A3 (1) = 67; a3 (2) = 7.8; a3 (3) = 0.017;

Ancak, bu yaratma yöntemi verimli değildir. Tek boyutlu bir dizi oluşturmanın başka bir yolu, iki nokta üst üste (sayısal değerler aralığı oluşturma işlemi) ile gösterilen özel bir işlevin kullanımına dayanır. Aralığın ilk numarasını, adımı (artış) ve aralığın bitiş numarasını iki nokta üst üste ile ayırarak girin. Örneğin:

"Çap = 3.7: 0.3: 8.974;

Elde edilen dizinin tamamını görüntülemeniz gerekmiyorsa, kümenin sonuna (aralığın son sayısından sonra) bir noktalı virgül yazın. Bir dizide kaç eleman olduğunu bulmak için uzunluk (dizi adı) işlevini çağırın.

İki boyutlu bir dizi (matris) oluşturmak için birleştirme işlemini de kullanabilirsiniz. Dizinin elemanları satırlardaki konumlarına göre tek tek yazılır, satır ayırıcı olarak noktalı virgül kullanılır.

Klavyeden girin:

»A =

ENTER'a basın, şunu elde ederiz:

Elde edilen 3x2 matris a (birincisi satır sayısı, ikincisi sütun sayısıdır) satır vektörlerinin dikey olarak birleştirilmesiyle de oluşturulabilir:

»A = [;;];

veya sütun vektörlerinin yatay olarak birleştirilmesiyle:

»A = [,];

Oluşturulan dizilerin yapısı whos (dizi adı) komutu kullanılarak, dizinin boyutu - ndims işlevi kullanılarak ve dizinin boyutu - boyutu kullanılarak bulunabilir.

2B dizileröğelerini ayrı ayrı belirleyerek indeksleme işlemi kullanılarak da belirtilebilir. Belirtilen dizi öğesinin kesiştiği noktada bulunan satır ve sütunun numarası, virgülle ayrılmış olarak belirtilir. parantez... Örneğin:

"A (1,1) = 1; a (1,2) = 2; a (2.1) = 3; "A (2.2) = 4; a (3.1) = 5; a (3.2) = 6;

Ancak, dizi öğelerini yazmaya başlamadan önce, birler (m, n) veya sıfırlar (m, n) işlevlerini kullanarak, birler veya sıfırlar (m) ile dolu bir dizi oluşturmanız çok daha verimli olacaktır. satır sayısıdır, n sütun sayısıdır). Bu işlevler çağrıldığında, dizinin belirli bir boyutu için bellek önceden tahsis edilir, ardından öğelerin gerekli değerlere sahip kademeli olarak atanması, dizi için ayrılan bellek yapısının yeniden oluşturulmasını gerektirmez. Bu işlevler, diğer boyutların dizilerini belirtirken de kullanılabilir.

X dizisinin oluşturulmasından sonra dizinin öğelerini değiştirmeden boyutlarını değiştirmek gerekirse, yeniden şekillendirme (X, M, N) işlevini kullanabilirsiniz; burada M ve N, X dizisinin yeni boyutlarıdır.

Bu fonksiyonun çalışması ancak MATLAB'ın dizi elemanlarını bilgisayar belleğinde saklama şekline bağlı olarak açıklanabilir. Bunları, sütunlara göre sıralanmış bitişik bir bellek alanında saklar: ilk sütunun öğeleri, ardından ikinci sütunun öğeleri vb. Gerçek verilere (dizi öğeleri) ek olarak, kontrol bilgileri de bilgisayarın belleğinde saklanır: dizinin türü (örneğin, double), dizinin boyutu ve boyutu ve diğer hizmet bilgileri. Bu bilgi kolonların sınırlarını belirlemek için yeterlidir. Bunu, yeniden şekillendirme işleviyle matrisi yeniden şekillendirmek için, kendi verilerinize dokunmadan yalnızca hizmet bilgilerini değiştirmeniz yeterlidir.

"(Dönem ve kesme işareti) işareti ile gösterilen taşıma işlemi ile matrisin satırlarını sütunlarıyla değiştirebilirsiniz.

"A =;

"(kesme işareti) işlemi, gerçek matrisler için transpozisyon ve karmaşık matrisler için eşzamanlı karmaşık konjugasyonla transpozisyon gerçekleştirir.

MATLAB'ın çalıştığı nesneler dizilerdir. Dahili MATLAB gösteriminde verilen bir sayı bile tek elemanlı bir dizidir. MATLAB, büyük sayı dizileriyle hesaplamaları tek sayılarla olduğu kadar kolay yapmanızı sağlar ve bu, MATLAB sisteminin hesaplama ve programlamaya odaklanan diğer yazılım paketlerine göre en dikkate değer ve önemli avantajlarından biridir. Sayısal öğeleri depolamak için gereken belleğe ek olarak (gerçek sayılar olması durumunda her biri için 8 bayt ve karmaşık sayılar olması durumunda 16 bayt), MATLAB dizileri oluştururken kontrol bilgileri için otomatik olarak bellek ayırır.

dizilerle hesaplama

Geleneksel programlama dillerinde, dizilerle yapılan hesaplamalar, her bir işlemi programlamanız gerektiği anlamında eleman eleman gerçekleştirilir. ayrı eleman dizi. MATLAB sisteminin M dilinde, tüm dizide aynı anda güçlü grup işlemlerine izin verilir. MATLAB sisteminin grup işlemleri, hesaplanmasında gerçekten büyük miktarda iş yapılan ifadeleri son derece kompakt bir şekilde tanımlamayı mümkün kılar.

Matris toplama ve çıkarma işlemleri standart + ve - işaretleri ile gösterilir.

A ve B matrislerini belirleyin ve matris toplama işlemini gerçekleştirin:

"A =; B =;

işlenenler kullanılırsa farklı boyutlar, işlenenlerden biri skaler olmadığı sürece bir hata mesajı görüntülenir. A + a skaler (A bir matristir) işlemini gerçekleştirirken, sistem skaleri A boyutunda bir diziye genişletecek ve daha sonra A ile eleman eleman eklenecektir.

Aynı boyuttaki dizilerin eleman bazında çarpma ve eleman bazında bölünmesi ve ayrıca dizilerin eleman bazında üslenmesi için, iki sembolün kombinasyonları ile gösterilen işlemler kullanılır: *, ./ ve. ^. Sembol kombinasyonlarının kullanımı, * ve / sembollerinin vektörler ve matrisler üzerinde lineer cebirin özel işlemlerini ifade ettiği gerçeğiyle açıklanmaktadır.

/, Sağ eleman bazında bölme işlemi olarak adlandırılan işlemin yanında, sol eleman bazında bölme işlemi de vardır. \. Bu işlemler arasındaki fark: A. / B ifadesi, A (k, m) / B (k, m) öğelerine sahip bir matrise ve A. \ B ifadesi, B (k, m) öğelerine sahip bir matrise yol açar. ) / A (k , m).

* işareti lineer cebir anlamında matrislerin ve vektörlerin çarpımına atanır.

\ işareti, lineer cebirde oldukça karmaşık bir problemi çözmek için MATLAB sisteminde sabittir - sistemin köklerini bulmak lineer denklemler... Örneğin, A, N'N boyutunda belirli bir kare matris, b, N uzunluğunda belirli bir sütun vektörü olmak üzere, Ay = b lineer denklem sistemini çözmek gerekirse, bilinmeyen sütun vektörü y'yi bulmak için A \ b ifadesini hesaplamak için yeterlidir (bu, A -1 B işlemine eşdeğerdir).

Uzayda analitik geometrinin tipik problemleri, vektörlerin uzunluklarını ve aralarındaki açıları bulma, skaler ve vektör ürünlerinin hesaplanması ile ilgili problemler, MATLAB sisteminin çeşitli araçlarıyla kolayca çözülür. Örneğin, vektörlerin çarpımını bulmak için özel bir çarpı işlevi kullanılır, örneğin:

"U =; v =;

Vektörlerin nokta çarpımı, vektörlerin tüm elemanlarının toplamını hesaplayan genel amaçlı fonksiyon toplamı kullanılarak hesaplanabilir (matrisler için bu fonksiyon tüm sütunların toplamlarını hesaplar). Skaler ürünün, vektörlerin karşılık gelen koordinatlarının (elemanlarının) ürünlerinin toplamına eşit olduğu bilinmektedir. Yani ifade: "toplam (u. * V)

iki vektör u ve v'nin nokta çarpımını hesaplar. Nokta çarpımı şu şekilde de hesaplanabilir: u * v ".

Vektör uzunluğu, nokta çarpım ve çıkarma işlevi kullanılarak hesaplanır kare kök, Örneğin:

»Sqrt (toplam (u. * U))

Daha önce skalerler için tartışılan ilişkiler ve mantıksal işlemler, diziler durumunda eleman eleman gerçekleştirilir. Her iki işlenen de aynı boyutta olmalıdır ve işlem aynı boyutta bir sonuç döndürür. İşlenenlerden birinin skaler olması durumunda, anlamı daha önce aritmetik işlemler örneği ile açıklanmış olan ön genişlemesi gerçekleştirilir.

Verilen özelliklere sahip matrisler oluşturan fonksiyonlar arasında, fonksiyon göz Birim kare matrisler üreten , ve yaygın olarak kullanılan rand işlevi, 0 ile 1 aralığında eşit olarak dağıtılmış rastgele öğelerden oluşan bir dizi oluşturur.

0'dan 1'e eşit aralıklarla yerleştirilmiş öğelerle 3x3'lük bir rasgele sayı dizisi oluşturur.

Bu işlevi iki argümanla çağırırsanız, örneğin R = Rand (2,3), rastgele öğelerden oluşan 2x3'lük bir R matrisi elde edersiniz. Rand'ı üç veya daha fazla skaler argümanla çağırmak, çok boyutlu rasgele sayı dizileri üretir.

Bir kare matrisin determinantı, det işlevi kullanılarak hesaplanır. Diziler üzerinde en basit hesaplamaları yapan işlevler arasında, yukarıda ele alınan toplam işlevine ek olarak, her şeyde toplama işlevine benzeyen prod işlevi de kullanılır, yalnızca öğelerin toplamını değil, ürünlerini hesaplar. max ve min fonksiyonları sırasıyla dizilerin maksimum ve minimum elemanlarını arar. Vektörler için tek bir sayısal değer döndürürler ve matrisler için her sütun için hesaplanan bir dizi uç öğe üretirler. Sıralama işlevi, tek boyutlu dizilerin öğelerini artan düzende sıralar ve matrisler için bu sıralamayı her sütun için ayrı ayrı yapar.

MATLAB, olağan yöntemleri kullanarak diziler üzerinde toplu hesaplamalar yapma konusunda benzersiz bir yeteneğe sahiptir. matematik fonksiyonları geleneksel programlama dillerinde yalnızca skaler argümanlarla çalışan . Sonuç olarak, etkileşimli bir çalışma modunda klavyeden girilmesi kolay son derece kompakt girişlerin yardımıyla komut penceresi MATLAB sistemi ile büyük miktarda hesaplama yapmak mümkündür. Örneğin, sadece iki kısa ifade

"X = 0: 0.01: pi / 2; y = günah (x);

günah fonksiyonunun değerlerini bir kerede 158 noktada hesaplayın, her biri 158 elemanlı iki x ve y vektörü oluşturun.

Çizim fonksiyonları

MATLAB'ın grafik yetenekleri güçlü ve çeşitlidir. Şimdi kullanımı en kolay özellikleri (yüksek seviye grafikler) keşfedelim.

İki vektör x ve y oluşturun:

"X = 0: 0.01: 2; y = günah (x);

Fonksiyonu çağırın:

ve ekranda fonksiyonun bir grafiğini göreceksiniz (Şekil 1).

Pirinç. 1. y = günah (x) fonksiyonunun grafiği

MATLAB gösterileri grafik nesneleri başlığında Figür kelimesi ile özel grafik pencerelerinde. İlk grafik penceresini ekrandan kaldırmadan klavyeden ifadeleri girin

ve aynı grafik penceresinde fonksiyonun yeni bir grafiğini alın (bu durumda, eski koordinat eksenleri ve grafik kaybolur - bu ayrıca clf komutuyla da yapılabilir, cla komutuyla sadece grafik silinir, koordinat getirilir eksenleri standart aralıklarına 0 ila 1).

İkinci grafiği "birinci çizelgenin üzerine" çizmeniz gerekiyorsa, o zaman ikincil aramadan önce grafik işleviçizim, mevcut grafik penceresini tutmak için tasarlanmış bekletme komutunu çalıştırmanız gerekir:

"X = 0: 0.01: 2; y = günah (x);

Şunları yazarsanız, hemen hemen aynısı olur (Şekil 2):

"X = 0: 0.01: 2; y = günah (x); z = cos (x);

»Arsa (x, y, x, z)

Pirinç. 2. y = sin (x), z = cos (x) fonksiyonlarının grafikleri, bir grafik penceresinde yerleşik

Birbirleriyle etkileşime girmemeleri için aynı anda birkaç grafik oluşturmanız gerekiyorsa, bu iki şekilde yapılabilir. İlk çözüm, onları farklı grafik pencerelerinde oluşturmaktır. Bunu yapmak için, çizim işlevinin ikinci çağrısından önce, yeni bir grafik penceresi oluşturan ve sonraki tüm çizim işlevlerini orada görüntülemeye zorlayan şekil komutunu yazın.

Çakışan koordinat aralıkları olmadan birden çok grafiği görüntülemek için ikinci çözüm, alt grafik işlevini kullanmaktır. Bu işlev, grafik bilgilerini görüntüleme alanını, her birinde çeşitli işlevlerin grafiklerini görüntüleyebileceğiniz birkaç alt alana bölmenize olanak tanır.

Örneğin, daha önce gerçekleştirilen hesaplamalar için işlevler günah ve cos, bu iki fonksiyonun grafiklerini birinci alt alanda ve exp (x) fonksiyonunun grafiğini aynı grafik penceresinin ikinci alt alanında çizin (Şekil 3):

"Alt Grafik (1,2,1); arsa (x, y, x, z)

"Alt Grafik (1,2,2); arsa (x, w)

Pirinç. 3. y = sin (x), z = cos (x) ve w = exp (x) fonksiyonlarının grafikleri, aynı grafik penceresinin iki alt alanında yerleşik

Bu alt alanların koordinat eksenlerindeki değişkenlerin varyasyon aralıkları birbirinden bağımsızdır. Subplot işlevi, birincisi alt alanların satır sayısına, ikincisi alt alanların sütunlarının sayısına ve üçüncü argüman alt alanların sayısına eşit olan üç sayısal argümanı kabul eder. (sayı, tükendiğinde yeni bir satıra geçişle birlikte satırlar boyunca sayılır). Alt nokta işlevinin eylemini şu komutla kaldırabilirsiniz:

»Alt Grafik (1,1,1)

Bir veya her iki eksen boyunca değişkenlerin aralıkları tek bir çizim için çok büyükse, logaritmik ölçeklerde çizim fonksiyonlarını kullanabilirsiniz. semilogx, semilogy ve loglog fonksiyonları bunun için tasarlanmıştır.

Kutupsal grafik işlevini kullanarak işlevi kutupsal koordinatlarda çizebilirsiniz (Şekil 4).

"Phi = 0: 0.01: 2 * pi; r = günah (3 * phi);

Pirinç. 4. Kutupsal koordinatlarda r = sin (3 * phi) fonksiyonunun grafiği

Düşünmek Ek özellikler grafiklerin görünümünü yönetmekle ilgili - çizgilerin rengini ve stilini ayarlamanın yanı sıra grafik penceresine çeşitli etiketler yerleştirme. Örneğin, komutlar

"X = 0: 0.1: 3; y = günah (x);

»Arsa (x, y," r - ", x, y," ko ")

grafiklere, ayrı hesaplanmış noktalara siyah dairelerin yerleştirildiği kırmızı bir düz çizgi görünümü vermenizi sağlar (Şekil 5). Burada çizim işlevi, aynı işlevi iki kez, ancak iki farklı tarzda çizer. Bu stillerden ilki, kırmızı bir çizgi (r harfi) çizmek anlamına gelen "r-" olarak etiketlenmiştir ve kontur, düz bir çizgi çizmek anlamına gelir. "Ko" olarak işaretlenen ikinci stil, hesaplanan noktaların yerine siyah (k harfi) daireler (o harfi) çizmek anlamına gelir.

Pirinç. 5. y = sin (x) fonksiyonunu iki farklı stilde çizmek

Genel olarak, çizim (x1, y1, s1, x2, y2, s2, ...) işlevi, y1 (x1), y2 (x2), ... işlevlerinin birkaç grafiğini tek bir grafik penceresinde birleştirmenizi sağlar. onları s1, s2, ... vb. stiller ile çizmek

Stiller s1, s2, ... tek tırnak (kesme işareti) içine alınmış üç karakter işaretçisi seti olarak belirtilir. Bu işaretçilerden biri çizgi tipini tanımlar (Tablo 3). Başka bir işaretleyici rengi belirler (Tablo 4). Son işaret, konacak "puan" tipini belirler (Tablo 5). Her üç işaretçi de belirtilemez. Ardından varsayılan işaretçiler kullanılır. İşaretçilerin gösterilme sırası önemli değildir, yani "r + -" ve "- + r" aynı sonucu verir.

Tablo 3. Hat türünü belirten işaretler

Tablo 4 Çizgi rengini belirten işaretler

Tablo 5 Nokta türünü belirten işaretler

Stil satırındaki nokta tipine bir işaret koyarsanız, ancak çizgi tipine bir işaret koymazsanız, yalnızca hesaplanan noktalar görüntülenir ve bunlar sürekli bir çizgiyle bağlanmazlar.


MATLAB, bağımsız değişken için kullanıcı tarafından belirtilen değerlere yatay eksende limitler koyar. Dikey eksen boyunca bağımlı değişken için, MATLAB bağımsız olarak fonksiyon değerleri aralığını hesaplar. MATLAB sisteminde grafikler çizerken bu ölçekleme özelliğinden vazgeçmeniz gerekiyorsa, değişkenleri koordinat eksenleri boyunca değiştirmek için açıkça kendi sınırlarınızı dayatmanız gerekir. Bu, eksen () işlevi kullanılarak yapılır.

xlabel, ylabel, title ve text fonksiyonları, ortaya çıkan şekle çeşitli etiketler koymak için kullanılır. xlabel işlevi yatay eksen için bir etiket oluşturur, ylabel işlevi - ayrıca dikey eksen için (ayrıca bu etiketler koordinat eksenleri boyunca yönlendirilir). Resimde rastgele bir yere bir yazı yerleştirmek istiyorsanız, metin işlevini kullanın. Grafiğin genel başlığı, başlık işlevi tarafından oluşturulur. Ek olarak, grid on komutunu kullanarak, tüm çizim alanına bir ölçüm ızgarası uygulayabilirsiniz. Örneğin (şekil 6):

"X = 0: 0.1: 3; y = günah (x);

»Arsa (x, y," r - ", x, y," ko ")

»Başlık (" sin (x) grafiği işlevi ");

»Xlabel (" x koordinatı "); ylabel ("günah (x)");

»Metin (2.1, 0.9," \ leftarrowsin (x) "); ızgara

Metin işlevine sahip başlık, ilk iki argüman tarafından belirtilen koordinatlara sahip noktadan başlayarak yerleştirilir. Varsayılan olarak koordinatlar, yatay ve dikey eksenlerde belirtilen koordinatlarla aynı birimlerde belirtilir. Metin içinde \ (ters eğik çizgi) karakterinden sonra özel kontrol karakterleri girilir.

3D grafikler

Uzaydaki her nokta üç koordinat ile karakterize edilir. Uzayda belirli bir doğruya ait bir nokta kümesi, birincisi bu noktaların ilk koordinatlarını, ikinci vektör onların ikinci koordinatlarını ve üçüncü vektör üçüncü koordinatları içeren üç vektör şeklinde belirtilmelidir. Bundan sonra, bu üç vektör, karşılık gelen üç boyutlu çizgiyi bir düzleme yansıtacak ve ortaya çıkan görüntüyü oluşturacak olan plot3 fonksiyonunun girişine beslenebilir (Şekil 7). Klavyeden girin:

"T = 0: pi / 50: 10 * pi; x = günah (t);

»Y = cos (t); arsa3 (x, y, t); ızgara

Pirinç. 7. Plot3 işlevi kullanılarak çizilmiş bir sarmalın grafiği

Aynı plot3 işlevi, elbette, bir çizgi değil, birçok çizgi çizerseniz, uzaydaki yüzeyleri çizmek için kullanılabilir. Klavyeden yazın:

"U = -2: 0.1: 2; v = -1: 0.1: 1;

"= Meshgrid (u, v);

»Z = exp (-X. ^ 2-Y. ^ 2);

Almak üç boyutlu görüntü fonksiyon grafiği (şekil 8).

plot3 işlevi, her biri yOz düzlemine paralel düzlemlere sahip üç boyutlu bir yüzeyin bir bölümü olan uzayda bir dizi çizgi olarak bir grafik çizer. Bundan ayrı en basit fonksiyon MATLAB, üç boyutlu grafiklerin görüntüsünde daha fazla gerçekçilik elde etmenizi sağlayan bir dizi başka işleve sahiptir.

Pirinç. 8. Plot3 işlevi kullanılarak oluşturulmuş uzayda yüzey çizimi


Komut dosyaları ve m dosyaları.

Basit işlemler için etkileşimli mod uygundur, ancak hesaplamaların tekrar tekrar yapılması gerekiyorsa veya karmaşık algoritmalar uygulanması gerekiyorsa, kullanmalısınız. MATLAB m-dosyaları(dosya uzantısı bir harf m'den oluşur). script-m-file (veya komut dosyası) - MATLAB dilinde otomatik toplu modda yürütülecek talimatları içeren bir metin dosyası. MATLAB düzenleyicisini kullanarak böyle bir dosya oluşturmak daha uygundur. MATLAB sisteminin komut penceresinden Dosya / Yeni / M-dosya menü komutu (veya araç çubuğunda boş bir beyaz sayfa gösteren en soldaki düğme) kullanılarak çağrılır. Komut satırına komut dosyasının adını (uzantı olmadan) girerseniz, komut dosyalarına yazılan komutlar yürütülür. Komut penceresinde tanımlanan değişkenler ve komut dosyalarında tanımlanan değişkenler MATLAB sisteminin tek bir çalışma alanını oluşturur ve komut dosyalarında tanımlanan değişkenler globaldir, değerleri bu komut dosyasından önce kullanılan aynı değişkenlerin değerlerinin yerini alacaktır. dosya çağrıldı.

Komut dosyası metni oluşturulduktan sonra diske kaydedilmelidir. Dosyanın bulunduğu dizinin yolu MATLAB sistemi tarafından bilinmelidir. Dosya / Yolu Ayarla komutu, dizin yolu görüntüleyici iletişim kutusunu çağırır. Erişim yolları listesine yeni bir dizin eklemek için Yol / Yola ekle menü komutunu izleyin.

Çoğu geliştirici, hem sözdizimini hem de yeteneklerini anlamakta zorlanır. Mesele şu ki, dil, maliyeti inanılmaz değerlere ulaşabilen popüler bir yazılım ürünü ile doğrudan ilgili. Öyleyse asıl soru şudur: Matlab'ın kendisi bu kadar iyi mi? Ve sizin için yararlı olabilir mi?

kullanım

Tarihe standart bir gezi ve dilin artıları ve eksilerinin tartışılmasıyla değil, MATLAB / Simulink yazılım ortamıyla başlayalım - bu metnin kahramanının yararlı olabileceği tek yer. Sadece hayal et grafik düzenleyici, birkaç yıllık deneyime ve arkanızda uygun eğitime sahip olmadan herhangi bir fikrinizi uygulayabilirsiniz. Ve bir kez araçların etkileşim şemasını oluşturduktan sonra, tekrar kullanım için yüksek kaliteli bir komut dosyası edinin.

MATLAB, veri dünyasında tam da böyle bir editördür. Kapsamı sonsuzdur: IoT, finans, tıp, uzay, otomasyon, robotik, kablosuz sistemler ve çok daha fazlası. Genel olarak, veri toplama ve görselleştirme ile tahmin için neredeyse sınırsız olanaklar vardır, ancak yalnızca ilgili paketi satın alma fırsatı varsa.

Fiyata gelince, üst sınır neredeyse değil, ancak daha düşük olanı 99 dolar civarında. Nispeten az parayla bu kadar güçlü bir ürüne sahip olmak için üniversite öğrencisi olmanız gerekir. Ve tabii ki oldukça sınırlı bir ürün elde edersiniz.

Dilin özellikleri

MATLAB dili, bir operatörün (genellikle bir programcının bile değil) verileri analiz etmek, toplamak ve sunmak için mevcut tüm yeteneklerle etkileşime girmesine izin veren bir araçtır. Kapalı bir ekosistemde yaşayan bir dilin doğasında bulunan bariz artıları ve eksileri vardır.

Dezavantajları:

    Ana amacı görsel algıyı geliştirmek olan operatörler, komutlar, işlevler içeren yavaş ve aşırı yüklenmiş bir dil.

    Dar yönlü. MATLAB'ın faydalı olduğu başka bir yazılım platformu yoktur.

    Yüksek yazılım maliyeti. Öğrenci değilseniz ya ceplerinizi boşaltmaya hazırlanın ya da kanunların sınırlarını aşın. Ve öğrenci iyi bir fiyat olsa bile.

    Düşük talep. MATLAB'a hemen hemen her alanda büyük ilgi gösterilmesine rağmen, aslında ve yasal olarak sadece birkaçı onu kullanıyor.

Avantajlar:

    Dilin öğrenilmesi kolaydır ve basit ve anlaşılır bir söz dizimine sahiptir.

    Büyük fırsatlar. Ancak bu, bir bütün olarak tüm ürünün bir avantajıdır.

    Sık güncellemeler, kural olarak, yılda en az birkaç kez gözle görülür olumlu dönüşümler meydana gelir.

    Yazılım ortamı, onu C, C++ dilinde "hızlı" koda dönüştürmenize olanak tanır.

Hedef seyirci kitlesi

Elbette herkesin MATLAB'a ihtiyacı yoktur. En geniş uygulama yelpazesine rağmen, ortalama bir uygulama geliştiricisinin bu dil bilgisine ihtiyaç duyabileceğini hayal etmek zor. MATLAB, örneğin otomobillerdeki otopilot sistemlerinde veya bir uçağın elektronik sistemlerinde olduğu gibi, veri işlemede özel güvenilirlik gerektiren alanlarda son derece kullanışlıdır.

Yani, çok programcı değilseniz, ancak bir şekilde mesleğiniz ihtiyaçla bağlantılıdır. yazılım işleme MATLAB / Simulink ürünü, ilgili dile sahip, günlük işlerinizi büyük ölçüde basitleştirebilir.

Edebiyat

Dilin incelemesini her zaman olduğu gibi bir eğitim literatürü listesiyle sonlandırıyoruz. Tabii ki, bunların arasında sadece dil üzerine kitaplar bulamayacaksınız, ancak bu sadece dilin algılanmasını kolaylaştıracaktır:

MATLAB ile deneyiminiz var mı? Ve hangisi?

Programcı olmak isteyenler için -.