MATLAB - Hızlı Kılavuz
MATLAB (matris laboratuvarı), sayısal hesaplama, görselleştirme ve programlama için dördüncü nesil yüksek seviyeli bir programlama dili ve etkileşimli bir ortamdır.
MATLAB, MathWorks tarafından geliştirilmiştir.
Matris manipülasyonlarına izin verir; fonksiyonların ve verilerin çizilmesi; algoritmaların uygulanması; kullanıcı arayüzlerinin oluşturulması; C, C ++, Java ve FORTRAN dahil olmak üzere diğer dillerde yazılmış programlarla arayüz oluşturma; veri analizi; algoritmalar geliştirmek; modeller ve uygulamalar oluşturun.
Matematiksel hesaplamalarda, grafik oluşturmada ve sayısal yöntemler gerçekleştirmede size yardımcı olan çok sayıda yerleşik komuta ve matematik işlevine sahiptir.
MATLAB'ın Hesaplamalı Matematiğin Gücü
MATLAB, hesaplamalı matematiğin her alanında kullanılır. Aşağıda, en yaygın olarak kullanıldığı bazı yaygın olarak kullanılan matematiksel hesaplamalar verilmiştir:
- Matrisler ve Dizilerle Başa Çıkma
- 2 Boyutlu ve 3 Boyutlu Çizim ve grafikler
- Lineer Cebir
- Cebirsel Denklemler
- Doğrusal Olmayan Fonksiyonlar
- Statistics
- Veri analizi
- Matematik ve Diferansiyel Denklemler
- Sayısal Hesaplamalar
- Integration
- Transforms
- Eğri Uydurma
- Çeşitli diğer özel fonksiyonlar
MATLAB'ın Özellikleri
MATLAB'ın temel özellikleri aşağıdadır -
Sayısal hesaplama, görselleştirme ve uygulama geliştirme için üst düzey bir dildir.
Ayrıca yinelemeli keşif, tasarım ve problem çözme için etkileşimli bir ortam sağlar.
Doğrusal cebir, istatistik, Fourier analizi, filtreleme, optimizasyon, sayısal entegrasyon ve sıradan diferansiyel denklemlerin çözümü için geniş matematiksel fonksiyonlar kütüphanesi sağlar.
Verileri görselleştirmek için yerleşik grafikler ve özel grafikler oluşturmak için araçlar sağlar.
MATLAB'ın programlama arayüzü, kod kalitesinin sürdürülebilirliğini artırmak ve performansı en üst düzeye çıkarmak için geliştirme araçları sağlar.
Özel grafik arayüzlere sahip uygulamalar oluşturmak için araçlar sağlar.
MATLAB tabanlı algoritmaları C, Java, .NET ve Microsoft Excel gibi harici uygulamalar ve dillerle entegre etmek için işlevler sağlar.
MATLAB'ın Kullanım Alanları
MATLAB, fizik, kimya, matematik ve tüm mühendislik akışlarını kapsayan bilim ve mühendislikte hesaplama aracı olarak yaygın olarak kullanılmaktadır. Aşağıdakiler dahil bir dizi uygulamada kullanılır:
- Sinyal İşleme ve İletişim
- Görüntü ve Video İşleme
- Kontrol sistemleri
- Test ve Ölçüm
- Hesaplamalı Finans
- Hesaplamalı Biyoloji
Yerel Ortam Kurulumu
MATLAB ortamını kurmak birkaç tıklama meselesidir. Yükleyici indirilebilir burada .
MathWorks, lisanslı ürünü, bir deneme sürümünü ve bir öğrenci sürümünü de sağlar. Siteye giriş yapmanız ve onaylarını biraz beklemeniz gerekir.
Yükleyiciyi indirdikten sonra yazılım birkaç tıklama ile kurulabilir.
MATLAB Ortamını Anlamak
MATLAB geliştirme IDE, masaüstünde oluşturulan simgeden başlatılabilir. MATLAB'daki ana çalışma penceresine masaüstü adı verilir. MATLAB başlatıldığında, masaüstü varsayılan düzeninde görünür -
Masaüstünde aşağıdaki paneller bulunur -
Current Folder - Bu panel, proje klasörlerine ve dosyalarına erişmenizi sağlar.
Command Window- Bu, komut satırından komutların girilebildiği ana alandır. Komut istemiyle (>>) gösterilir.
Workspace - Çalışma alanı dosyalardan oluşturulan ve / veya içe aktarılan tüm değişkenleri gösterir.
Command History - Bu panel, komut satırına girilen komutları gösterir veya döndürür.
GNU Octave'i kurun
Makinenizde (Linux, BSD, OS X veya Windows) Octave kullanmak istiyorsanız, lütfen GNU Octave İndir bölümünden en son sürümü indirin . Makineniz için verilen kurulum talimatlarını kontrol edebilirsiniz.
MATLAB ortamı süper karmaşık bir hesap makinesi gibi davranır. >> komut istemine komutlar girebilirsiniz.
MATLAB, yorumlanmış bir ortamdır. Başka bir deyişle, bir komut verirsiniz ve MATLAB onu hemen çalıştırır.
Uygulamalı Pratik
Geçerli bir ifade yazın, örneğin,
5 + 5
Ve ENTER tuşuna basın
Yürüt düğmesine tıkladığınızda veya Ctrl + E tuşlarına bastığınızda, MATLAB bunu hemen yürütür ve döndürülen sonuç -
ans = 10
Birkaç örnek daha ele alalım -
3 ^ 2 % 3 raised to the power of 2
Yürüt düğmesine tıkladığınızda veya Ctrl + E tuşlarına bastığınızda, MATLAB bunu hemen yürütür ve döndürülen sonuç -
ans = 9
Başka bir örnek,
sin(pi /2) % sine of angle 90o
Yürüt düğmesine tıkladığınızda veya Ctrl + E tuşlarına bastığınızda, MATLAB bunu hemen yürütür ve döndürülen sonuç -
ans = 1
Başka bir örnek,
7/0 % Divide by zero
Yürüt düğmesine tıkladığınızda veya Ctrl + E tuşlarına bastığınızda, MATLAB bunu hemen yürütür ve döndürülen sonuç -
ans = Inf
warning: division by zero
Başka bir örnek,
732 * 20.3
Yürüt düğmesine tıkladığınızda veya Ctrl + E tuşlarına bastığınızda, MATLAB bunu hemen yürütür ve döndürülen sonuç -
ans = 1.4860e+04
MATLAB, π için pi, ∞ için Inf, √-1 için i (ve j) gibi bazı matematiksel semboller için bazı özel ifadeler sağlar. Nan "sayı değil" anlamına gelir.
MATLAB'da Noktalı Virgül (;) Kullanımı
Noktalı virgül (;) ifadenin sonunu gösterir. Ancak, bir ifade için MATLAB çıktısını gizlemek ve gizlemek istiyorsanız, ifadeden sonra noktalı virgül ekleyin.
Örneğin,
x = 3;
y = x + 5
Yürüt düğmesine tıkladığınızda veya Ctrl + E tuşlarına bastığınızda, MATLAB bunu hemen yürütür ve döndürülen sonuç -
y = 8
Yorum Ekleme
Yüzde sembolü (%) bir yorum satırını belirtmek için kullanılır. Örneğin,
x = 9 % assign the value 9 to x
Blok yorum operatörlerini% {ve%} kullanarak bir yorum bloğu da yazabilirsiniz.
MATLAB düzenleyici, yorumların biçimini eklemenize, kaldırmanıza veya değiştirmenize yardımcı olacak araçlar ve bağlam menüsü öğeleri içerir.
Yaygın Olarak Kullanılan Operatörler ve Özel Karakterler
MATLAB, aşağıdaki yaygın olarak kullanılan operatörleri ve özel karakterleri destekler -
Şebeke | Amaç |
---|---|
+ | Artı; toplama operatörü. |
- | Eksi; çıkarma operatörü. |
* | Skaler ve matris çarpım operatörü. |
.* | Dizi çarpma operatörü. |
^ | Skaler ve matris üs alma operatörü. |
.^ | Dizi üs alma operatörü. |
\ | Sol bölüm operatörü. |
/ | Sağ bölüm operatörü. |
.\ | Dizi sol bölme operatörü. |
./ | Dizi sağ bölme operatörü. |
: | Kolon; düzenli aralıklı öğeler üretir ve tüm bir satırı veya sütunu temsil eder. |
( ) | Parantez; işlev bağımsız değişkenlerini ve dizi dizinlerini kapsar; önceliği geçersiz kılar. |
[ ] | Parantez; muhafazalar dizi öğeleri. |
. | Ondalık nokta. |
… | Elipsis; hat devam operatörü |
, | Virgül; sıradaki ifadeleri ve öğeleri ayırır |
; | Noktalı virgül; sütunları ayırır ve görüntüyü bastırır. |
% | Yüzde işareti; bir açıklama belirtir ve biçimlendirmeyi belirtir. |
_ | Alıntı işareti ve devrik operatörü. |
._ | Konjuge olmayan devrik operatörü. |
= | Atama operatörü. |
Özel Değişkenler ve Sabitler
MATLAB aşağıdaki özel değişkenleri ve sabitleri destekler -
İsim | Anlam |
---|---|
ans | En son cevap. |
eps | Kayan nokta hassasiyetinin doğruluğu. |
i,j | Hayali birim √-1. |
Inf | Sonsuzluk. |
NaN | Tanımsız sayısal sonuç (sayı değil). |
pi | Sayı π |
Değişkenleri Adlandırma
Değişken isimleri, herhangi bir sayıda harf, rakam veya alt çizginin izlediği bir harften oluşur.
MATLAB case-sensitive.
Değişken isimleri herhangi bir uzunlukta olabilir, ancak MATLAB yalnızca ilk N karakteri kullanır, burada N, işlev tarafından verilir namelengthmax.
Çalışmanızı Kaydetme
save command çalışma alanındaki tüm değişkenleri .mat uzantılı bir dosya olarak geçerli dizine kaydetmek için kullanılır.
Örneğin,
save myfile
Dosyayı daha sonra kullanarak yeniden yükleyebilirsiniz. load komut.
load myfile
MATLAB ortamında her değişken bir dizi veya matristir.
Değişkenleri basit bir şekilde atayabilirsiniz. Örneğin,
x = 3 % defining x and initializing it with a value
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
x = 3
X adında 1'e 1 matris oluşturur ve 3 değerini elemanında saklar. Başka bir örneğe bakalım,
x = sqrt(16) % defining x and initializing it with an expression
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
x = 4
Lütfen unutmayın -
Sisteme bir değişken girildiğinde, ona daha sonra başvurabilirsiniz.
Değişkenler kullanılmadan önce değerlere sahip olmalıdır.
Bir ifade herhangi bir değişkene atanmamış bir sonuç döndürdüğünde, sistem onu daha sonra kullanılabilecek ans adlı bir değişkene atar.
Örneğin,
sqrt(78)
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
ans = 8.8318
Bu değişkeni kullanabilirsiniz ans -
sqrt(78);
9876/ans
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
ans = 1118.2
Başka bir örneğe bakalım -
x = 7 * 8;
y = x * 7.89
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
y = 441.84
Birden Çok Atama
Aynı satırda birden fazla atamanız olabilir. Örneğin,
a = 2; b = 7; c = a * b
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
c = 14
Değişkenleri unuttum!
who komutu, kullandığınız tüm değişken adlarını görüntüler.
who
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
Your variables are:
a ans b c
whos komutu değişkenler hakkında biraz daha fazlasını gösterir -
- Şu anda bellekte bulunan değişkenler
- Her değişkenin türü
- Her değişkene ayrılmış bellek
- Karmaşık değişkenler olup olmadıkları
whos
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
Attr Name Size Bytes Class
==== ==== ==== ==== =====
a 1x1 8 double
ans 1x70 757 cell
b 1x1 8 double
c 1x1 8 double
Total is 73 elements using 781 bytes
clear komutu, tüm (veya belirtilen) değişken (ler) i bellekten siler.
clear x % it will delete x, won't display anything
clear % it will delete all variables in the workspace
% peacefully and unobtrusively
Uzun Ödevler
Uzun atamalar bir elips (...) kullanılarak başka bir satıra uzatılabilir. Örneğin,
initial_velocity = 0;
acceleration = 9.8;
time = 20;
final_velocity = initial_velocity + acceleration * time
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
final_velocity = 196
Biçim Komutu
MATLAB varsayılan olarak dört ondalık basamaklı sayıları görüntüler. Bu olarak bilinirshort format.
Ancak, daha fazla hassasiyet istiyorsanız, format komut.
format long komutu, ondalık sayıdan sonra 16 basamak görüntüler.
Örneğin -
format long
x = 7 + 10/3 + 5 ^ 1.2
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir−
x = 17.2319816406394
Başka bir örnek,
format short
x = 7 + 10/3 + 5 ^ 1.2
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
x = 17.232
format bankkomutu sayıları iki ondalık basamağa yuvarlar. Örneğin,
format bank
daily_wage = 177.45;
weekly_wage = daily_wage * 6
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
weekly_wage = 1064.70
MATLAB, üstel gösterimi kullanarak büyük sayıları görüntüler.
format short e komutu, dört ondalık basamak artı üs ile üstel biçimde görüntülemeye izin verir.
Örneğin,
format short e
4.678 * 4.9
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
ans = 2.2922e+01
format long ekomutu, dört ondalık basamak artı üs ile üstel biçimde görüntülemeye izin verir. Örneğin,
format long e
x = pi
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
x = 3.141592653589793e+00
format ratkomut, bir hesaplamadan kaynaklanan en yakın rasyonel ifadeyi verir. Örneğin,
format rat
4.678 * 4.9
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
ans = 34177/1491
Vektör Oluşturma
Bir vektör, tek boyutlu bir sayı dizisidir. MATLAB, iki tür vektör oluşturmaya izin verir -
- Satır vektörleri
- Sütun vektörleri
Row vectors öğeleri sınırlamak için boşluk veya virgül kullanılarak, öğe kümesini köşeli parantez içine alarak oluşturulur.
Örneğin,
r = [7 8 9 10 11]
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
r =
7 8 9 10 11
Başka bir örnek,
r = [7 8 9 10 11];
t = [2, 3, 4, 5, 6];
res = r + t
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
res =
9 11 13 15 17
Column vectors öğeleri sınırlamak için noktalı virgül (;) kullanılarak, öğeler kümesini köşeli parantez içine alarak oluşturulur.
c = [7; 8; 9; 10; 11]
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
c =
7
8
9
10
11
Matrisler Oluşturma
Matris, iki boyutlu bir sayı dizisidir.
MATLAB'de, her satıra boşluk veya virgülle ayrılmış öğeler dizisi olarak girilerek bir matris oluşturulur ve bir satırın sonu bir noktalı virgülle ayrılır. Örneğin, 3'e 3 matris oluşturalım:
m = [1 2 3; 4 5 6; 7 8 9]
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
m =
1 2 3
4 5 6
7 8 9
MATLAB, sayısal hesaplama ve veri görselleştirme için etkileşimli bir programdır. MATLAB komut istemine '>>' yazarak bir komut girebilirsiniz.Command Window.
Bu bölümde, yaygın olarak kullanılan genel MATLAB komutlarının listelerini sağlayacağız.
Bir Oturumu Yönetme Komutları
MATLAB, bir oturumu yönetmek için çeşitli komutlar sağlar. Aşağıdaki tablo bu tür tüm komutları göstermektedir -
Komut | Amaç |
---|---|
clc | Komut penceresini temizler. |
açık | Değişkenleri bellekten kaldırır. |
var olmak | Dosya veya değişkenin varlığını denetler. |
küresel | Değişkenlerin global olduğunu bildirir. |
Yardım | Bir yardım konusu arar. |
aramak | Bir anahtar sözcük için yardım girişlerini arar. |
çıkmak | MATLAB'ı durdurur. |
DSÖ | Mevcut değişkenleri listeler. |
kim | Mevcut değişkenleri listeler (uzun gösterim). |
Sistemle Çalışma Komutları
MATLAB, çalışma alanındaki mevcut çalışmayı bir dosya olarak kaydetmek ve dosyayı daha sonra yüklemek gibi sistemle çalışmak için çeşitli yararlı komutlar sağlar.
Ayrıca, tarih görüntüleme, dizindeki dosyaları listeleme, geçerli dizini görüntüleme vb. Gibi sistemle ilgili diğer etkinlikler için çeşitli komutlar sağlar.
Aşağıdaki tabloda, yaygın olarak kullanılan bazı sistemle ilgili komutlar gösterilmektedir -
Komut | Amaç |
---|---|
CD | Mevcut dizini değiştirir. |
tarih | Güncel tarihi görüntüler. |
sil | Bir dosyayı siler. |
günlük | Günlük dosyası kaydını açar / kapatır. |
dir | Geçerli dizindeki tüm dosyaları listeler. |
yük | Çalışma alanı değişkenlerini bir dosyadan yükler. |
yol | Arama yolunu görüntüler. |
pwd | Mevcut dizini görüntüler. |
kayıt etmek | Çalışma alanı değişkenlerini bir dosyaya kaydeder. |
tip | Bir dosyanın içeriğini görüntüler. |
ne | Geçerli dizindeki tüm MATLAB dosyalarını listeler. |
wklread | .Wk1 elektronik tablo dosyasını okur. |
Giriş ve Çıkış Komutları
MATLAB, aşağıdaki giriş ve çıkışla ilgili komutları sağlar -
Komut | Amaç |
---|---|
disp | Bir dizi veya dizenin içeriğini görüntüler. |
fscanf | Biçimlendirilmiş verileri bir dosyadan okuyun. |
biçim | Ekran görüntüleme formatını kontrol eder. |
fprintf | Ekrana veya dosyaya formatlanmış yazma işlemleri gerçekleştirir. |
giriş | Bilgi istemlerini görüntüler ve giriş için bekler. |
; | Serigrafi baskıyı bastırır. |
fscanf ve fprintfkomutlar C scanf ve printf işlevleri gibi davranır. Aşağıdaki biçim kodlarını desteklerler -
Biçim Kodu | Amaç |
---|---|
%s | Dize olarak biçimlendirin. |
%d | Tamsayı olarak biçimlendirin. |
%f | Kayan nokta değeri olarak biçimlendirin. |
%e | Bilimsel gösterimde kayan nokta değeri olarak biçimlendirin. |
%g | En kompakt biçimde biçimlendirin:% f veya% e. |
\n | Çıktı dizesine yeni bir satır ekleyin. |
\t | Çıktı dizesine bir sekme ekleyin. |
Biçim işlevi, sayısal görüntüleme için kullanılan aşağıdaki formlara sahiptir -
Biçim İşlevi | Kadar göster |
---|---|
kısa format | Dört ondalık basamak (varsayılan). |
uzun format | 16 ondalık basamak. |
kısa format e | Beş basamak artı üs. |
uzun e biçimlendir | 16 hane artı üs. |
biçim bankası | İki ondalık basamak. |
biçim + | Pozitif, negatif veya sıfır. |
format sıçanı | Rasyonel yaklaşım. |
kompakt biçim | Bazı satır beslemelerini bastırır. |
gevşek format | Daha az kompakt görüntüleme moduna sıfırlar. |
Vektör, Matris ve Dizi Komutları
Aşağıdaki tablo diziler, matrisler ve vektörlerle çalışmak için kullanılan çeşitli komutları gösterir -
Komut | Amaç |
---|---|
kedi | Dizileri birleştirir. |
bulmak | Sıfır olmayan elemanların indislerini bulur. |
uzunluk | Eleman sayısını hesaplar. |
boşluk | Düzenli aralıklı vektör oluşturur. |
günlük alanı | Logaritmik aralıklı vektör oluşturur. |
max | En büyük elemanı döndürür. |
min | En küçük öğeyi döndürür. |
dürtmek | Her sütunun ürünü. |
yeniden şekillendirmek | Boyut değiştirir. |
boyut | Dizi boyutunu hesaplar. |
çeşit | Her sütunu sıralar. |
toplam | Her sütunu toplar. |
göz | Bir kimlik matrisi oluşturur. |
olanlar | Bir dizi oluşturur. |
sıfırlar | Bir dizi sıfır oluşturur. |
çapraz | Matris çapraz ürünleri hesaplar. |
nokta | Matris nokta ürünlerini hesaplar. |
det | Bir dizinin determinantını hesaplar. |
inv | Bir matrisin tersini hesaplar. |
pinv | Bir matrisin sözde tersini hesaplar. |
sıra | Bir matrisin rankını hesaplar. |
rref | İndirgenmiş satır basamak şeklini hesaplar. |
hücre | Hücre dizisi oluşturur. |
Celldisp | Hücre dizisini görüntüler. |
hücre planı | Hücre dizisinin grafik temsilini görüntüler. |
num2cell | Sayısal diziyi hücre dizisine dönüştürür. |
anlaştık mı | Girdi ve çıktı listelerini eşleştirir. |
Iscell | Hücre dizisini tanımlar. |
Çizim Komutları
MATLAB, grafikleri çizmek için çok sayıda komut sağlar. Aşağıdaki tablo, çizim için yaygın olarak kullanılan bazı komutları göstermektedir -
Komut | Amaç |
---|---|
eksen | Eksen sınırlarını belirler. |
fplot | Fonksiyonların akıllıca çizilmesi. |
Kafes | Kılavuz çizgilerini görüntüler. |
arsa | Xy grafiği oluşturur. |
Yazdır | Grafiği yazdırır veya bir dosyaya kaydeder. |
Başlık | Metni arsanın en üstüne yerleştirir. |
xlabel | X eksenine metin etiketi ekler. |
ilabel | Y eksenine metin etiketi ekler. |
eksenler | Eksen nesneleri oluşturur. |
kapat | Mevcut planı kapatır. |
hepsini kapat | Tüm planları kapatır. |
şekil | Yeni bir şekil penceresi açar. |
gtext | Fare ile etiket yerleştirmeyi etkinleştirir. |
ambar | Mevcut planı dondurur. |
efsane | Fare ile gösterge yerleşimi. |
yenilemek | Mevcut şekil penceresini yeniden çizer. |
Ayarlamak | Eksenler gibi nesnelerin özelliklerini belirtir. |
alt plan | Alt pencerelerde grafikler oluşturur. |
Metin | Dizeyi şekle yerleştirir. |
bar | Çubuk grafik oluşturur. |
günlük günlüğü | Log-log grafiği oluşturur. |
kutup | Kutupsal arsa oluşturur. |
semilogx | Semilog grafiği oluşturur. (logaritmik apsis). |
yarı bilim | Semilog grafiği oluşturur. (logaritmik ordinat). |
merdivenler | Merdiven arsa oluşturur. |
kök | Kök grafiği oluşturur. |
Şimdiye kadar MATLAB ortamını hesap makinesi olarak kullandık. Bununla birlikte, MATLAB aynı zamanda güçlü bir programlama dilinin yanı sıra etkileşimli bir hesaplama ortamıdır.
Önceki bölümlerde, MATLAB komut isteminden komutların nasıl girileceğini öğrendiniz. MATLAB ayrıca bir dosyaya bir dizi komut yazmanıza ve dosyayı bir işlev yazmak ve çağırmak gibi eksiksiz bir birim olarak yürütmenize izin verir.
M Dosyaları
MATLAB, iki tür program dosyası yazmaya izin verir -
Scripts - komut dosyaları, .m extension. Bu dosyalarda, birlikte yürütmek istediğiniz bir dizi komut yazarsınız. Komut dosyaları girişleri kabul etmez ve herhangi bir çıktı döndürmez. Çalışma alanındaki veriler üzerinde çalışırlar.
Functions - işlev dosyaları aynı zamanda program dosyalarıdır. .m extension. Fonksiyonlar girişleri kabul edebilir ve çıkışları döndürebilir. Dahili değişkenler işlev için yereldir.
MATLAB düzenleyicisini veya başka herhangi bir metin düzenleyiciyi kullanarak .mDosyalar. Bu bölümde betik dosyalarını tartışacağız. Bir komut dosyası dosyası, MATLAB komutlarının ve işlev çağrılarının birden çok sıralı satırını içerir. Komut satırına adını yazarak bir komut dosyası çalıştırabilirsiniz.
Komut Dosyası Dosyası Oluşturma ve Çalıştırma
Komut dosyası dosyaları oluşturmak için bir metin düzenleyici kullanmanız gerekir. MATLAB düzenleyiciyi iki şekilde açabilirsiniz -
- Komut istemini kullanma
- IDE'yi kullanma
Komut istemini kullanıyorsanız, yazın editkomut isteminde. Bu, editörü açacaktır. Doğrudan yazabilirsinizedit ve sonra dosya adı (.m uzantılı)
edit
Or
edit <filename>
Yukarıdaki komut, dosyayı varsayılan MATLAB dizininde oluşturacaktır. Tüm program dosyalarını belirli bir klasörde saklamak istiyorsanız, tüm yolu sağlamanız gerekecektir.
Progs adında bir klasör oluşturalım. Komut istemine (>>) aşağıdaki komutları yazın -
mkdir progs % create directory progs under default directory
chdir progs % changing the current directory to progs
edit prog1.m % creating an m file named prog1.m
Dosyayı ilk kez oluşturuyorsanız, MATLAB sizden onaylamanızı ister. Evet'i tıklayın.
Alternatif olarak, IDE kullanıyorsanız, YENİ -> Komut Dosyası'nı seçin. Bu ayrıca düzenleyiciyi açar ve Adsız adlı bir dosya oluşturur. Kodu yazdıktan sonra dosyayı adlandırabilir ve kaydedebilirsiniz.
Düzenleyiciye aşağıdaki kodu yazın -
NoOfStudents = 6000;
TeachingStaff = 150;
NonTeachingStaff = 20;
Total = NoOfStudents + TeachingStaff ...
+ NonTeachingStaff;
disp(Total);
Dosyayı oluşturup kaydettikten sonra iki şekilde çalıştırabilirsiniz -
Tıklamak Run düzenleyici penceresindeki düğmesi veya
Dosya adını (uzantısız) komut istemine yazmanız yeterlidir: >> prog1
Komut penceresi istemi sonucu görüntüler -
6170
Misal
Bir komut dosyası oluşturun ve aşağıdaki kodu yazın -
a = 5; b = 7;
c = a + b
d = c + sin(b)
e = 5 * d
f = exp(-d)
Yukarıdaki kod derlendiğinde ve yürütüldüğünde, aşağıdaki sonucu verir -
c = 12
d = 12.657
e = 63.285
f = 3.1852e-06
MATLAB, herhangi bir tür bildirimi veya boyut ifadesi gerektirmez. MATLAB yeni bir değişken adıyla karşılaştığında, değişkeni oluşturur ve uygun bellek alanını tahsis eder.
Değişken zaten mevcutsa, MATLAB orijinal içeriği yeni içerikle değiştirir ve gerektiğinde yeni depolama alanı tahsis eder.
Örneğin,
Total = 42
Yukarıdaki ifade 'Toplam' adında 1'e 1 bir matris oluşturur ve içinde 42 değerini depolar.
MATLAB'da Mevcut Veri Türleri
MATLAB, 15 temel veri türü sağlar. Her veri türü, bir matris veya dizi biçiminde olan verileri depolar. Bu matrisin veya dizinin boyutu minimum 0'a 0'dır ve bu, herhangi bir boyutta bir matris veya diziye kadar büyüyebilir.
Aşağıdaki tablo, MATLAB'da en sık kullanılan veri türlerini göstermektedir -
Sr.No. | Veri Türü ve Açıklaması |
---|---|
1 | int8 8 bitlik işaretli tamsayı |
2 | uint8 8 bitlik işaretsiz tamsayı |
3 | int16 16 bitlik işaretli tamsayı |
4 | uint16 16 bitlik işaretsiz tamsayı |
5 | int32 32 bitlik işaretli tam sayı |
6 | uint32 32 bitlik işaretsiz tamsayı |
7 | int64 64 bitlik işaretli tamsayı |
8 | uint64 64 bit işaretsiz tamsayı |
9 | single tek duyarlıklı sayısal veri |
10 | double çift kesinlikli sayısal veri |
11 | logical 1 veya 0 mantıksal değerleri, sırasıyla doğru ve yanlışı temsil eder |
12 | char karakter verileri (dizeler karakter vektörü olarak saklanır) |
13 | cell array her biri farklı bir boyut ve veri türünde bir dizi depolayabilen dizinlenmiş hücreler dizisi |
14 | structure C benzeri yapılar, her yapı, farklı boyut ve veri türünde bir dizi depolayabilen adlandırılmış alanlara sahiptir. |
15 | function handle bir işleve işaretçi |
16 | user classes kullanıcı tanımlı bir sınıftan oluşturulan nesneler |
17 | java classes Java sınıfından oluşturulan nesneler |
Misal
Aşağıdaki kodla bir komut dosyası oluşturun -
str = 'Hello World!'
n = 2345
d = double(n)
un = uint32(789.50)
rn = 5678.92347
c = int32(rn)
Yukarıdaki kod derlendiğinde ve yürütüldüğünde, aşağıdaki sonucu verir -
str = Hello World!
n = 2345
d = 2345
un = 790
rn = 5678.9
c = 5679
Veri Türü Dönüşümü
MATLAB, bir veri türünden diğerine bir değeri dönüştürmek için çeşitli işlevler sağlar. Aşağıdaki tablo, veri türü dönüştürme işlevlerini gösterir -
Fonksiyon | Amaç |
---|---|
kömür | Karakter dizisine (dize) dönüştür |
int2str | Tamsayı verilerini dizeye dönüştürme |
mat2str | Matrisi dizeye dönüştür |
num2str | Sayıyı dizeye dönüştür |
str2double | Dizeyi çift duyarlıklı değere dönüştür |
str2num | Dizeyi sayıya dönüştür |
native2unicode | Sayısal baytları Unicode karakterlere dönüştürme |
unicode2native | Unicode karakterlerini sayısal baytlara dönüştür |
base2dec | Temel N sayı dizesini ondalık sayıya dönüştür |
bin2dec | İkili sayı dizesini ondalık sayıya dönüştür |
dec2base | Dizedeki ondalık sayıyı temel N sayıya dönüştür |
dec2bin | Dize içinde ondalığı ikili sayıya dönüştür |
dec2hex | Dize içinde ondalık onaltılık sayıya dönüştür |
hex2dec | Onaltılık sayı dizesini ondalık sayıya dönüştür |
hex2num | Onaltılık sayı dizesini çift duyarlıklı sayıya dönüştür |
num2hex | Tekleri ve çiftleri IEEE onaltılık dizelere dönüştürün |
hücre2mat | Hücre dizisini sayısal diziye dönüştür |
hücre2 yapısı | Hücre dizisini yapı dizisine dönüştür |
Cellstr | Karakter dizisinden hücre dizisi dizisi oluşturun |
mat2cell | Diziyi, potansiyel olarak farklı boyuttaki hücrelere sahip hücre dizisine dönüştürün |
num2cell | Tutarlı şekilde boyutlandırılmış hücrelerle diziyi hücre dizisine dönüştürün |
struct2cell | Yapıyı hücre dizisine dönüştür |
Veri Tiplerinin Belirlenmesi
MATLAB, bir değişkenin veri türünü tanımlamak için çeşitli işlevler sağlar.
Aşağıdaki tablo, bir değişkenin veri türünü belirleme işlevlerini sağlar -
Fonksiyon | Amaç |
---|---|
dır-dir | Durumu algıla |
isa | Girdinin belirtilen sınıfın nesnesi olup olmadığını belirle |
Iscell | Girdinin hücre dizisi olup olmadığını belirleme |
iscellstr | Girdinin dizelerin hücre dizisi olup olmadığını belirleme |
ischar | Öğenin karakter dizisi olup olmadığını belirleyin |
Isfield | Girişin yapı dizisi alanı olup olmadığını belirleme |
isfloat | Girdinin kayan nokta dizisi olup olmadığını belirle |
ishghandle | Tutamaç Grafikleri nesne tutamaçları için True |
isinteger | Girdinin tamsayı dizisi olup olmadığını belirle |
Isjava | Girdinin Java nesnesi olup olmadığını belirleyin |
eşbilimsel | Girişin mantıksal dizi olup olmadığını belirle |
sayısal olmayan | Girişin sayısal dizi olup olmadığını belirle |
izobject | Girişin MATLAB nesnesi olup olmadığını belirleyin |
gerçek | Girişin gerçek dizi olup olmadığını kontrol edin |
isskalar | Girdinin skaler olup olmadığını belirleyin |
isstr | Girişin karakter dizisi olup olmadığını belirleyin |
yapılandırılmış | Girdinin yapı dizisi olup olmadığını belirleme |
vektör | Girdinin vektör olup olmadığını belirleyin |
sınıf | Nesne sınıfını belirle |
nitelikleri doğrula | Dizinin geçerliliğini kontrol edin |
kim | Çalışma alanındaki değişkenleri boyutlar ve türlerle listeleyin |
Misal
Aşağıdaki kodla bir komut dosyası oluşturun -
x = 3
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
x = 23.54
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
x = [1 2 3]
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
x = 'Hello'
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)
Dosyayı çalıştırdığınızda, aşağıdaki sonucu verir -
x = 3
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1
x = 23.540
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1
x =
1 2 3
ans = 0
ans = 1
ans = 1
ans = 0
x = Hello
ans = 0
ans = 0
ans = 1
ans = 0
ans = 0
Operatör, derleyiciye belirli matematiksel veya mantıksal işlemleri gerçekleştirmesini söyleyen bir semboldür. MATLAB, öncelikle tüm matrisler ve diziler üzerinde çalışmak üzere tasarlanmıştır. Bu nedenle, MATLAB'daki operatörler hem skaler hem de skaler olmayan veriler üzerinde çalışır. MATLAB, aşağıdaki temel işlem türlerine izin verir -
- Aritmetik operatörler
- İlişkisel Operatörler
- Mantıksal operatörler
- Bitsel İşlemler
- İşlemleri Ayarla
Aritmetik operatörler
MATLAB iki farklı aritmetik işleme izin verir -
- Matris aritmetik işlemleri
- Dizi aritmetik işlemleri
Matris aritmetik işlemleri, doğrusal cebirde tanımlananlarla aynıdır. Dizi işlemleri, hem tek boyutlu hem de çok boyutlu dizide, öğeye göre çalıştırılır.
Matris operatörleri ve dizi operatörleri, nokta (.) Sembolüyle ayrılır. Ancak, toplama ve çıkarma işlemi matrisler ve diziler için aynı olduğundan, operatör her iki durumda da aynıdır. Aşağıdaki tablo, operatörlerin kısa bir açıklamasını verir -
Örnekleri Göster
Sr.No. | Operatör ve Açıklama |
---|---|
1 | + Toplama veya tekli artı. A + B, A ve B değişkenlerinde depolanan değerleri ekler. Biri skaler olmadığı sürece, A ve B aynı boyutta olmalıdır. Herhangi bir boyuttaki bir matrise bir skaler eklenebilir. |
2 | - Çıkarma veya tekli eksi. AB, B'nin değerini A'dan çıkarır. Bir skaler olmadığı sürece, A ve B aynı boyutta olmalıdır. Bir skaler, herhangi bir boyuttaki bir matristen çıkarılabilir. |
3 | * Matris çarpımı. C = A * B, A ve B matrislerinin doğrusal cebirsel çarpımıdır.Daha doğrusu,
Skaler olmayan A ve B için, A'nın sütun sayısı B'nin satır sayısına eşit olmalıdır. Bir skaler, herhangi bir boyuttaki bir matrisi çarpabilir. |
4 | .* Dizi çarpımı. A. * B, A ve B dizilerinin eleman eleman çarpımıdır. A ve B, biri skaler değilse, aynı boyutta olmalıdır. |
5 | / Eğik çizgi veya matris sağa bölme. B / A kabaca B * inv (A) ile aynıdır. Daha doğrusu, B / A = (A '\ B') '. |
6 | ./ Sağ bölme dizisi. A./B, A (i, j) / B (i, j) elemanlarına sahip matristir. A ve B, biri skaler değilse, aynı boyutta olmalıdır. |
7 | \ Ters eğik çizgi veya matris sola bölme. A bir kare matris ise, A \ B kabaca inv (A) * B ile aynıdır, ancak farklı bir şekilde hesaplanır. A, n'ye n bir matris ise ve B, n bileşenli bir sütun vektörü veya bu tür birkaç sütuna sahip bir matris ise, X = A \ B, AX = B denkleminin çözümüdür . A kötü ölçeklendirilmişse veya neredeyse tekil ise bir uyarı mesajı görüntülenir. |
8 | .\ Dizi sol bölme. A. \ B, B (i, j) / A (i, j) elemanlarına sahip matristir. A ve B, biri skaler değilse, aynı boyutta olmalıdır. |
9 | ^ Matris gücü. X ^ p, X'in üssü p'dir, eğer p skaler ise. P bir tamsayı ise, güç yinelenen kare alma ile hesaplanır. Tam sayı negatifse, önce X tersine çevrilir. Diğer p değerleri için, hesaplama özdeğerleri ve özvektörleri içerir, öyle ki [V, D] = eig (X) ise X ^ p = V * D. ^ p / V. |
10 | .^ Dizi gücü. A. ^ B, A (i, j) elemanlarından B (i, j) kuvvetine sahip matristir. A ve B, biri skaler değilse, aynı boyutta olmalıdır. |
11 | ' Matris devrik. A ', A'nın doğrusal cebirsel devrikidir. Karmaşık matrisler için bu, karmaşık eşlenik devriktir. |
12 | .' Dizi devrik. A. ' A'nın dizi devrikidir. Karmaşık matrisler için bu konjugasyonu içermez. |
İlişkisel Operatörler
İlişkisel operatörler ayrıca hem skaler hem de skaler olmayan veriler üzerinde çalışabilir. Diziler için ilişkisel operatörler, iki dizi arasında öğe öğe karşılaştırmaları gerçekleştirir ve aynı boyutta mantıksal bir dizi döndürür; öğeler, ilişkinin doğru olduğu mantıksal 1'e (doğru), öğeler ise mantıksal 0'a (yanlış) ayarlıdır. değil.
Aşağıdaki tablo, MATLAB'da bulunan ilişkisel operatörleri gösterir -
Örnekleri Göster
Sr.No. | Operatör ve Açıklama |
---|---|
1 | < Daha az |
2 | <= Küçüktür veya eşittir |
3 | > Büyüktür |
4 | >= Büyük veya eşit |
5 | == Eşittir |
6 | ~= Eşit değil |
Mantıksal operatörler
MATLAB iki tür mantıksal işleç ve işlev sunar -
Element-wise - Bu operatörler, mantıksal dizilerin karşılık gelen öğeleri üzerinde çalışır.
Kısa devre - Bu operatörler skaler ve mantıksal ifadelerle çalışır.
Eleman bazlı mantıksal operatörler, mantıksal diziler üzerinde eleman-eleman çalıştırır. &, | Ve ~ sembolleri, AND, OR ve NOT mantıksal dizi operatörleridir.
Kısa devre mantıksal operatörler, mantıksal işlemlerde kısa devreye izin verir. && ve || sembolleri mantıksal kısa devre operatörleri VE ve VEYA'dır.
Örnekleri Göster
Bitsel İşlemler
Bitsel operatörler bitler üzerinde çalışır ve bit bit işlem gerçekleştirir. &, | Ve ^ için doğruluk tabloları aşağıdaki gibidir -
p | q | p & q | p | q | p ^ q |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 |
A = 60 ise; ve B = 13; Şimdi ikili formatta aşağıdaki gibi olacaklar -
Bir = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A = 1100 0011
MATLAB provides various functions for bit-wise operations like 'bitwise and', 'bitwise or' and 'bitwise not' operations, shift operation, etc.
The following table shows the commonly used bitwise operations −
Show Examples
Function | Purpose |
---|---|
bitand(a, b) | Bit-wise AND of integers a and b |
bitcmp(a) | Bit-wise complement of a |
bitget(a,pos) | Get bit at specified position pos, in the integer array a |
bitor(a, b) | Bit-wise OR of integers a and b |
bitset(a, pos) | Set bit at specific location pos of a |
bitshift(a, k) | Returns a shifted to the left by k bits, equivalent to multiplying by 2k. Negative values of k correspond to shifting bits right or dividing by 2|k| and rounding to the nearest integer towards negative infinite. Any overflow bits are truncated. |
bitxor(a, b) | Bit-wise XOR of integers a and b |
swapbytes | Swap byte ordering |
Set Operations
MATLAB provides various functions for set operations, like union, intersection and testing for set membership, etc.
The following table shows some commonly used set operations −
Show Examples
Sr.No. | Function & Description |
---|---|
1 | intersect(A,B) Set intersection of two arrays; returns the values common to both A and B. The values returned are in sorted order. |
2 | intersect(A,B,'rows') Treats each row of A and each row of B as single entities and returns the rows common to both A and B. The rows of the returned matrix are in sorted order. |
3 | ismember(A,B) Returns an array the same size as A, containing 1 (true) where the elements of A are found in B. Elsewhere, it returns 0 (false). |
4 | ismember(A,B,'rows') Treats each row of A and each row of B as single entities and returns a vector containing 1 (true) where the rows of matrix A are also rows of B. Elsewhere, it returns 0 (false). |
5 | issorted(A) Returns logical 1 (true) if the elements of A are in sorted order and logical 0 (false) otherwise. Input A can be a vector or an N-by-1 or 1-by-N cell array of strings. A is considered to be sorted if A and the output of sort(A) are equal. |
6 | issorted(A, 'rows') Returns logical 1 (true) if the rows of two-dimensional matrix A is in sorted order, and logical 0 (false) otherwise. Matrix A is considered to be sorted if A and the output of sortrows(A) are equal. |
7 | setdiff(A,B) Sets difference of two arrays; returns the values in A that are not in B. The values in the returned array are in sorted order. |
8 | setdiff(A,B,'rows') Treats each row of A and each row of B as single entities and returns the rows from A that are not in B. The rows of the returned matrix are in sorted order. The 'rows' option does not support cell arrays. |
9 | setxor Sets exclusive OR of two arrays |
10 | union Sets union of two arrays |
11 | unique Unique values in array |
Decision making structures require that the programmer should specify one or more conditions to be evaluated or tested by the program, along with a statement or statements to be executed if the condition is determined to be true, and optionally, other statements to be executed if the condition is determined to be false.
Following is the general form of a typical decision making structure found in most of the programming languages −
MATLAB provides following types of decision making statements. Click the following links to check their detail −
Sr.No. | Statement & Description |
---|---|
1 | if ... end statement An if ... end statement consists of a boolean expression followed by one or more statements. |
2 | if...else...end statement An if statement can be followed by an optional else statement, which executes when the boolean expression is false. |
3 | If... elseif...elseif...else...end statements An if statement can be followed by one (or more) optional elseif... and an else statement, which is very useful to test various conditions. |
4 | nested if statements You can use one if or elseif statement inside another if or elseif statement(s). |
5 | switch statement A switch statement allows a variable to be tested for equality against a list of values. |
6 | nested switch statements You can use one switch statement inside another switch statement(s). |
There may be a situation when you need to execute a block of code several number of times. In general, statements are executed sequentially. The first statement in a function is executed first, followed by the second, and so on.
Programming languages provide various control structures that allow for more complicated execution paths.
A loop statement allows us to execute a statement or group of statements multiple times and following is the general form of a loop statement in most of the programming languages −
MATLAB provides following types of loops to handle looping requirements. Click the following links to check their detail −
Sr.No. | Loop Type & Description |
---|---|
1 | while loop Repeats a statement or group of statements while a given condition is true. It tests the condition before executing the loop body. |
2 | for loop Executes a sequence of statements multiple times and abbreviates the code that manages the loop variable. |
3 | nested loops You can use one or more loops inside any another loop. |
Loop Control Statements
Loop control statements change execution from its normal sequence. When execution leaves a scope, all automatic objects that were created in that scope are destroyed.
MATLAB supports the following control statements. Click the following links to check their detail.
Sr.No. | Control Statement & Description |
---|---|
1 | break statement Terminates the loop statement and transfers execution to the statement immediately following the loop. |
2 | continue statement Causes the loop to skip the remainder of its body and immediately retest its condition prior to reiterating. |
A vector is a one-dimensional array of numbers. MATLAB allows creating two types of vectors −
- Row vectors
- Column vectors
Row Vectors
Row vectors are created by enclosing the set of elements in square brackets, using space or comma to delimit the elements.
r = [7 8 9 10 11]
MATLAB will execute the above statement and return the following result −
r =
7 8 9 10 11
Column Vectors
Column vectors are created by enclosing the set of elements in square brackets, using semicolon to delimit the elements.
c = [7; 8; 9; 10; 11]
MATLAB will execute the above statement and return the following result −
c =
7
8
9
10
11
Referencing the Elements of a Vector
You can reference one or more of the elements of a vector in several ways. The ith component of a vector v is referred as v(i). For example −
v = [ 1; 2; 3; 4; 5; 6]; % creating a column vector of 6 elements
v(3)
MATLAB will execute the above statement and return the following result −
ans = 3
When you reference a vector with a colon, such as v(:), all the components of the vector are listed.
v = [ 1; 2; 3; 4; 5; 6]; % creating a column vector of 6 elements
v(:)
MATLAB will execute the above statement and return the following result −
ans =
1
2
3
4
5
6
MATLAB allows you to select a range of elements from a vector.
For example, let us create a row vector rv of 9 elements, then we will reference the elements 3 to 7 by writing rv(3:7) and create a new vector named sub_rv.
rv = [1 2 3 4 5 6 7 8 9];
sub_rv = rv(3:7)
MATLAB will execute the above statement and return the following result −
sub_rv =
3 4 5 6 7
Vector Operations
In this section, let us discuss the following vector operations −
Addition and Subtraction of Vectors
Scalar Multiplication of Vectors
Transpose of a Vector
Appending Vectors
Magnitude of a Vector
Vector Dot Product
Vectors with Uniformly Spaced Elements
A matrix is a two-dimensional array of numbers.
In MATLAB, you create a matrix by entering elements in each row as comma or space delimited numbers and using semicolons to mark the end of each row.
For example, let us create a 4-by-5 matrix a −
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8]
MATLAB will execute the above statement and return the following result −
a =
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
Referencing the Elements of a Matrix
To reference an element in the mth row and nth column, of a matrix mx, we write −
mx(m, n);
Örneğin , son bölümde oluşturulan a matrisinin 2. satır ve 5. sütunundaki öğeye başvurmak için, -
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a(2,5)
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
ans = 6
M. Sütundaki tüm öğelere başvurmak için A (:, m) yazıyoruz.
Bize 4 elemanlarından, kolon vektörü v yapalım inci matris a satır -
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
v = a(:,4)
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
v =
4
5
6
7
Ayrıca m inci ila n inci sütunlardaki öğeleri de seçebilirsiniz , bunun için yazıyoruz -
a(:,m:n)
İkinci ve üçüncü sütunlardaki öğeleri alarak daha küçük bir matris oluşturalım -
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a(:, 2:3)
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
ans =
2 3
3 4
4 5
5 6
Aynı şekilde, bir matrisin bir alt bölümünü alan bir alt matris oluşturabilirsiniz.
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a(:, 2:3)
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
ans =
2 3
3 4
4 5
5 6
Aynı şekilde, bir matrisin bir alt bölümünü alan bir alt matris oluşturabilirsiniz.
Örneğin, a'nın iç alt bölümünü alarak bir sa alt matrisi oluşturalım -
3 4 5
4 5 6
Bunu yapmak için şunu yazın -
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
sa = a(2:3,2:4)
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
sa =
3 4 5
4 5 6
Matristeki Bir Satırı veya Sütunu Silme
Bir matrisin tüm satırını veya sütununu, bu satıra veya sütuna boş bir köşeli parantez [] atayarak silebilirsiniz. Temel olarak, [] boş bir diziyi belirtir.
Örneğin, a'nın dördüncü satırını silelim -
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a( 4 , : ) = []
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
a =
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
Sonra, a'nın beşinci sütununu silelim -
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a(: , 5)=[]
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
a =
1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7
Misal
Bu örnekte, 3'e 3 bir m matrisi oluşturalım, sonra bu matrisin ikinci ve üçüncü satırlarını 4'e 3 matris oluşturmak için iki kez kopyalayacağız.
Aşağıdaki kodla bir komut dosyası oluşturun -
a = [ 1 2 3 ; 4 5 6; 7 8 9];
new_mat = a([2,3,2,3],:)
Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -
new_mat =
4 5 6
7 8 9
4 5 6
7 8 9
Matris İşlemleri
Bu bölümde, aşağıdaki temel ve yaygın olarak kullanılan matris işlemlerini tartışalım -
Matrislerin Toplanması ve Çıkarılması
Matris Bölümü
Matrislerin Skaler İşlemleri
Bir Matrisin Transpoze Edilmesi
Matrisleri Birleştirme
Matris Çarpımı
Bir Matrisin Belirleyicisi
Bir Matrisin Tersi
MATLAB'daki tüm veri türlerinin tüm değişkenleri çok boyutlu dizilerdir. Bir vektör, tek boyutlu bir dizidir ve bir matris, iki boyutlu bir dizidir.
Vektörleri ve matrisleri zaten tartışmıştık. Bu bölümde, çok boyutlu dizileri tartışacağız. Bununla birlikte, bundan önce, bazı özel dizi türlerini tartışalım.
MATLAB'da Özel Diziler
Bu bölümde, bazı özel dizileri oluşturan bazı işlevleri tartışacağız. Tüm bu işlevler için, tek bir argüman bir kare dizi oluşturur, çift argümanlar dikdörtgen dizi oluşturur.
zeros() işlev tamamen sıfırlardan oluşan bir dizi oluşturur -
Örneğin -
zeros(5)
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
ans =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
ones() fonksiyon tüm olanlardan oluşan bir dizi oluşturur -
Örneğin -
ones(4,3)
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
ans =
1 1 1
1 1 1
1 1 1
1 1 1
eye() işlevi bir kimlik matrisi oluşturur.
Örneğin -
eye(4)
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
rand() fonksiyon, (0,1) üzerinde düzgün dağıtılmış rasgele sayılardan oluşan bir dizi oluşturur -
Örneğin -
rand(3, 5)
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
ans =
0.8147 0.9134 0.2785 0.9649 0.9572
0.9058 0.6324 0.5469 0.1576 0.4854
0.1270 0.0975 0.9575 0.9706 0.8003
Sihirli Kare
Bir magic square öğeleri satır, sütun veya çapraz olarak eklendiğinde aynı toplamı üreten bir karedir.
magic()işlevi sihirli bir kare dizisi oluşturur. Karenin boyutunu veren tekil bir argüman alır. Bağımsız değişken, 3'e eşit veya daha büyük bir skaler olmalıdır.
magic(4)
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
ans =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
Çok Boyutlu Diziler
MATLAB'da ikiden fazla boyuta sahip bir dizi çok boyutlu bir dizi olarak adlandırılır. MATLAB'deki çok boyutlu diziler normal iki boyutlu matrisin bir uzantısıdır.
Genellikle çok boyutlu bir dizi oluşturmak için önce iki boyutlu bir dizi oluşturup genişletiyoruz.
Örneğin, iki boyutlu bir dizi oluşturalım a.
a = [7 9 5; 6 1 9; 4 3 2]
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
a =
7 9 5
6 1 9
4 3 2
Dizi , bir 3-ile-3 dizidir; Biz üçüncü bir boyut ekleyebilirsiniz bir benzeri değerler sağlayarak, -
a(:, :, 2)= [ 1 2 3; 4 5 6; 7 8 9]
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
a =
ans(:,:,1) =
0 0 0
0 0 0
0 0 0
ans(:,:,2) =
1 2 3
4 5 6
7 8 9
Ayrıca ones (), sıfırlar () veya rand () işlevlerini kullanarak çok boyutlu diziler oluşturabiliriz.
Örneğin,
b = rand(4,3,2)
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
b(:,:,1) =
0.0344 0.7952 0.6463
0.4387 0.1869 0.7094
0.3816 0.4898 0.7547
0.7655 0.4456 0.2760
b(:,:,2) =
0.6797 0.4984 0.2238
0.6551 0.9597 0.7513
0.1626 0.3404 0.2551
0.1190 0.5853 0.5060
Ayrıca kullanabiliriz cat()çok boyutlu diziler oluşturma işlevi. Belirli bir boyut boyunca dizilerin bir listesini birleştirir -
Cat () işlevinin sözdizimi -
B = cat(dim, A1, A2...)
Nerede,
B oluşturulan yeni dizidir
A1 , A2 , ... birleştirilecek dizilerdir
dim , dizilerin birleştirileceği boyuttur
Misal
Bir komut dosyası oluşturun ve aşağıdaki kodu içine yazın -
a = [9 8 7; 6 5 4; 3 2 1];
b = [1 2 3; 4 5 6; 7 8 9];
c = cat(3, a, b, [ 2 3 1; 4 7 8; 3 9 0])
Dosyayı çalıştırdığınızda, -
c(:,:,1) =
9 8 7
6 5 4
3 2 1
c(:,:,2) =
1 2 3
4 5 6
7 8 9
c(:,:,3) =
2 3 1
4 7 8
3 9 0
Dizi İşlevleri
MATLAB, dizi içeriklerini sıralamak, döndürmek, izin vermek, yeniden şekillendirmek veya değiştirmek için aşağıdaki işlevleri sağlar.
Fonksiyon | Amaç |
---|---|
uzunluk | Vektörün uzunluğu veya en büyük dizi boyutu |
ndims | Dizi boyutlarının sayısı |
numel | Dizi elemanlarının sayısı |
boyut | Dizi boyutları |
iscolumn | Girdinin sütun vektörü olup olmadığını belirler |
boş | Dizinin boş olup olmadığını belirler |
ismatrix | Girdinin matris olup olmadığını belirler |
Isrow | Girdinin satır vektörü olup olmadığını belirler |
isskalar | Girdinin skaler olup olmadığını belirler |
vektör | Girdinin vektör olup olmadığını belirler |
blkdiag | Giriş argümanlarından blok diyagonal matrisi oluşturur |
daire değiştirme | Diziyi dairesel olarak kaydırır |
ctranspose | Karmaşık eşlenik devrik |
tanılama | Çapraz matrisler ve matrisin köşegenleri |
Flipdim | Diziyi belirtilen boyut boyunca çevirir |
Fliplr | Matrisi soldan sağa çevirir |
takla | Matrisi yukarıdan aşağıya çevirir |
ipermute | Tersler, ND dizisinin boyutlarını değiştirir |
permütasyon | ND dizisinin boyutlarını yeniden düzenler |
repmat | Kopyalar ve döşeme dizisi |
yeniden şekillendirmek | Diziyi yeniden şekillendirir |
rot90 | Matrisi 90 derece döndürür |
Shiftdim | Boyutları değiştirir |
sıralı | Set öğelerinin sıralı olup olmadığını belirler |
çeşit | Dizi öğelerini artan veya azalan sırada sıralar |
sortrows | Satırları artan sırada sıralar |
suyunu sıkmak | Tekli boyutları kaldırır |
değiştirmek | Transpoze |
vektörleştirmek | Vektörizasyon ifadesi |
Örnekler
Aşağıdaki örnekler, yukarıda bahsedilen işlevlerden bazılarını göstermektedir.
Length, Dimension and Number of elements −
Bir komut dosyası oluşturun ve aşağıdaki kodu içine yazın -
x = [7.1, 3.4, 7.2, 28/4, 3.6, 17, 9.4, 8.9];
length(x) % length of x vector
y = rand(3, 4, 5, 2);
ndims(y) % no of dimensions in array y
s = ['Zara', 'Nuha', 'Shamim', 'Riz', 'Shadab'];
numel(s) % no of elements in s
Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -
ans = 8
ans = 4
ans = 23
Circular Shifting of the Array Elements −
Bir komut dosyası oluşturun ve aşağıdaki kodu içine yazın -
a = [1 2 3; 4 5 6; 7 8 9] % the original array a
b = circshift(a,1) % circular shift first dimension values down by 1.
c = circshift(a,[1 -1]) % circular shift first dimension values % down by 1
% and second dimension values to the left % by 1.
Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -
a =
1 2 3
4 5 6
7 8 9
b =
7 8 9
1 2 3
4 5 6
c =
8 9 7
2 3 1
5 6 4
Dizileri Sıralama
Bir komut dosyası oluşturun ve aşağıdaki kodu içine yazın -
v = [ 23 45 12 9 5 0 19 17] % horizontal vector
sort(v) % sorting v
m = [2 6 4; 5 3 9; 2 0 1] % two dimensional array
sort(m, 1) % sorting m along the row
sort(m, 2) % sorting m along the column
Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -
v =
23 45 12 9 5 0 19 17
ans =
0 5 9 12 17 19 23 45
m =
2 6 4
5 3 9
2 0 1
ans =
2 0 1
2 3 4
5 6 9
ans =
2 4 6
3 5 9
0 1 2
Hücre Dizisi
Hücre dizileri, her hücrenin farklı boyut ve veri türlerinden oluşan bir diziyi depolayabildiği dizinlenmiş hücre dizileridir.
cellişlevi, bir hücre dizisi oluşturmak için kullanılır. Hücre işlevinin sözdizimi -
C = cell(dim)
C = cell(dim1,...,dimN)
D = cell(obj)
Nerede,
C hücre dizisidir;
dim , C hücre dizisinin boyutlarını belirten skaler bir tamsayı veya tamsayı vektörüdür;
dim1, ..., dimN , C'nin boyutlarını belirten skaler tam sayılardır;
obj aşağıdakilerden biridir -
- Java dizisi veya nesnesi
- System.String veya System.Object türünde .NET dizisi
Misal
Bir komut dosyası oluşturun ve aşağıdaki kodu içine yazın -
c = cell(2, 5);
c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}
Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -
c =
{
[1,1] = Red
[2,1] = 1
[1,2] = Blue
[2,2] = 2
[1,3] = Green
[2,3] = 3
[1,4] = Yellow
[2,4] = 4
[1,5] = White
[2,5] = 5
}
Hücre Dizilerindeki Verilere Erişim
Bir hücre dizisinin öğelerine başvurmanın iki yolu vardır -
- Hücre kümelerine atıfta bulunmak için indisleri ilk parantez () içine alma
- Tek tek hücrelerdeki verilere başvurmak için dizinleri kaşlı ayraçlar {} içine alma
Dizinleri ilk köşeli paranteze aldığınızda, hücre kümesini ifade eder.
Düz parantez içindeki hücre dizisi indeksleri, hücre kümelerini ifade eder.
Örneğin -
c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5};
c(1:2,1:2)
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
ans =
{
[1,1] = Red
[2,1] = 1
[1,2] = Blue
[2,2] = 2
}
Küme parantezleri ile dizin oluşturarak da hücrelerin içeriğine erişebilirsiniz.
Örneğin -
c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5};
c{1, 2:4}
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
ans = Blue
ans = Green
ans = Yellow
colon(:)MATLAB'daki en kullanışlı operatörlerden biridir. Vektörler, alt simge dizileri oluşturmak için kullanılır vespecify for iterations.
1'den 10'a kadar tamsayılar içeren bir satır vektörü oluşturmak istiyorsanız, şunu yazarsınız -
1:10
MATLAB, ifadeyi yürütür ve 1'den 10'a kadar tam sayıları içeren bir satır vektörü döndürür -
ans =
1 2 3 4 5 6 7 8 9 10
Birden farklı bir artış değeri belirtmek isterseniz, örneğin -
100: -5: 50
MATLAB ifadeyi yürütür ve aşağıdaki sonucu döndürür -
ans =
100 95 90 85 80 75 70 65 60 55 50
Başka bir örnek alalım -
0:pi/8:pi
MATLAB ifadeyi yürütür ve aşağıdaki sonucu döndürür -
ans =
Columns 1 through 7
0 0.3927 0.7854 1.1781 1.5708 1.9635 2.3562
Columns 8 through 9
2.7489 3.1416
Dizilerin satırlarını, sütunlarını veya öğelerini seçmek üzere bir dizin vektörü oluşturmak için iki nokta üst üste operatörünü kullanabilirsiniz.
Aşağıdaki tablo, bu amaç için kullanımını açıklamaktadır (bir A matrisine sahip olalım) -
Biçim | Amaç |
---|---|
A(:,j) | A'nın j. sütunu. |
A(i,:) | A'nın i. satırı |
A(:,:) | eşdeğer iki boyutlu dizidir. Matrisler için bu, A ile aynıdır. |
A(j:k) | A (j), A (j + 1), ..., A (k). |
A(:,j:k) | A (:, j), A (:, j + 1), ..., A (:, k). |
A(:,:,k) | k inci üç boyutlu dizi A. sayfa |
A(i,j,k,:) | , dört boyutlu A dizisindeki bir vektördür. Vektör, A (i, j, k, 1), A (i, j, k, 2), A (i, j, k, 3) ve benzerlerini içerir. |
A(:) | A'nın tüm öğeleri, tek bir sütun olarak kabul edilir. Bir atama ifadesinin sol tarafında, A (:) önceki şeklini koruyarak A'yı doldurur. Bu durumda, sağ taraf A ile aynı sayıda öğe içermelidir. |
Misal
Bir komut dosyası oluşturun ve içine aşağıdaki kodu yazın -
A = [1 2 3 4; 4 5 6 7; 7 8 9 10]
A(:,2) % second column of A
A(:,2:3) % second and third column of A
A(2:3,2:3) % second and third rows and second and third columns
Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -
A =
1 2 3 4
4 5 6 7
7 8 9 10
ans =
2
5
8
ans =
2 3
5 6
8 9
ans =
5 6
8 9
MATLAB, işaretli ve işaretsiz tam sayıları ve tek duyarlıklı ve çift duyarlıklı kayan noktalı sayıları içeren çeşitli sayısal sınıfları destekler. MATLAB, varsayılan olarak tüm sayısal değerleri çift duyarlıklı kayan nokta numaraları olarak depolar.
Herhangi bir sayıyı veya sayı dizisini tamsayı veya tek duyarlıklı sayılar olarak depolamayı seçebilirsiniz.
Tüm sayısal türler, temel dizi işlemlerini ve matematiksel işlemleri destekler.
Çeşitli Sayısal Veri Türlerine Dönüştürme
MATLAB, çeşitli sayısal veri türlerine dönüştürmek için aşağıdaki işlevleri sağlar -
Fonksiyon | Amaç |
---|---|
çift | Çift duyarlıklı sayıya dönüştürür |
tek | Tek duyarlıklı sayıya dönüştürür |
int8 | 8 bitlik işaretli tam sayıya dönüştürür |
int16 | 16 bitlik işaretli tam sayıya dönüştürür |
int32 | 32 bitlik işaretli tam sayıya dönüştürür |
int64 | 64 bitlik işaretli tam sayıya dönüştürür |
uint8 | 8 bitlik işaretsiz tamsayıya dönüştürür |
uint16 | 16 bitlik işaretsiz tamsayıya dönüştürür |
uint32 | 32 bitlik işaretsiz tamsayıya dönüştürür |
uint64 | 64 bitlik işaretsiz tam sayıya dönüştürür |
Misal
Bir komut dosyası oluşturun ve aşağıdaki kodu yazın -
x = single([5.32 3.47 6.28]) .* 7.5
x = double([5.32 3.47 6.28]) .* 7.5
x = int8([5.32 3.47 6.28]) .* 7.5
x = int16([5.32 3.47 6.28]) .* 7.5
x = int32([5.32 3.47 6.28]) .* 7.5
x = int64([5.32 3.47 6.28]) .* 7.5
Dosyayı çalıştırdığınızda, aşağıdaki sonucu gösterir -
x =
39.900 26.025 47.100
x =
39.900 26.025 47.100
x =
38 23 45
x =
38 23 45
x =
38 23 45
x =
38 23 45
Misal
Önceki örneği biraz daha uzatalım. Bir komut dosyası oluşturun ve aşağıdaki kodu yazın -
x = int32([5.32 3.47 6.28]) .* 7.5
x = int64([5.32 3.47 6.28]) .* 7.5
x = num2cell(x)
Dosyayı çalıştırdığınızda, aşağıdaki sonucu gösterir -
x =
38 23 45
x =
38 23 45
x =
{
[1,1] = 38
[1,2] = 23
[1,3] = 45
}
En Küçük ve En Büyük Tamsayılar
Fonksiyonlar intmax() ve intmin() tüm tam sayı türleriyle temsil edilebilecek maksimum ve minimum değerleri döndürür.
Her iki işlev de argüman olarak tamsayı veri türünü alır, örneğin, intmax (int8) veya intmin (int64) ve tamsayı veri türüyle gösterebileceğiniz maksimum ve minimum değerleri döndürür.
Misal
Aşağıdaki örnek, en küçük ve en büyük tamsayı değerlerinin nasıl elde edileceğini gösterir. Bir komut dosyası oluşturun ve içine aşağıdaki kodu yazın -
% displaying the smallest and largest signed integer data
str = 'The range for int8 is:\n\t%d to %d ';
sprintf(str, intmin('int8'), intmax('int8'))
str = 'The range for int16 is:\n\t%d to %d ';
sprintf(str, intmin('int16'), intmax('int16'))
str = 'The range for int32 is:\n\t%d to %d ';
sprintf(str, intmin('int32'), intmax('int32'))
str = 'The range for int64 is:\n\t%d to %d ';
sprintf(str, intmin('int64'), intmax('int64'))
% displaying the smallest and largest unsigned integer data
str = 'The range for uint8 is:\n\t%d to %d ';
sprintf(str, intmin('uint8'), intmax('uint8'))
str = 'The range for uint16 is:\n\t%d to %d ';
sprintf(str, intmin('uint16'), intmax('uint16'))
str = 'The range for uint32 is:\n\t%d to %d ';
sprintf(str, intmin('uint32'), intmax('uint32'))
str = 'The range for uint64 is:\n\t%d to %d ';
sprintf(str, intmin('uint64'), intmax('uint64'))
Dosyayı çalıştırdığınızda, aşağıdaki sonucu gösterir -
ans = The range for int8 is:
-128 to 127
ans = The range for int16 is:
-32768 to 32767
ans = The range for int32 is:
-2147483648 to 2147483647
ans = The range for int64 is:
0 to 0
ans = The range for uint8 is:
0 to 255
ans = The range for uint16 is:
0 to 65535
ans = The range for uint32 is:
0 to -1
ans = The range for uint64 is:
0 to 18446744073709551616
En Küçük ve En Büyük Kayan Nokta Numaraları
Fonksiyonlar realmax() ve realmin() kayan nokta sayılarıyla gösterilebilecek maksimum ve minimum değerleri döndürür.
Her iki işlev de 'single' bağımsız değişkeni ile çağrıldığında, tek duyarlıklı veri türü ile temsil edebileceğiniz maksimum ve minimum değerleri döndürür ve 'double' bağımsız değişkeni ile çağrıldığında, temsil edebileceğiniz maksimum ve minimum değerleri döndürür. çift kesinlikli veri türü.
Misal
Aşağıdaki örnek, en küçük ve en büyük kayan nokta sayılarının nasıl elde edileceğini gösterir. Bir komut dosyası oluşturun ve içine aşağıdaki kodu yazın -
% displaying the smallest and largest single-precision
% floating point number
str = 'The range for single is:\n\t%g to %g and\n\t %g to %g';
sprintf(str, -realmax('single'), -realmin('single'), ...
realmin('single'), realmax('single'))
% displaying the smallest and largest double-precision
% floating point number
str = 'The range for double is:\n\t%g to %g and\n\t %g to %g';
sprintf(str, -realmax('double'), -realmin('double'), ...
realmin('double'), realmax('double'))
Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -
ans = The range for single is:
-3.40282e+38 to -1.17549e-38 and
1.17549e-38 to 3.40282e+38
ans = The range for double is:
-1.79769e+308 to -2.22507e-308 and
2.22507e-308 to 1.79769e+308
MATLAB'da bir karakter dizisi oluşturmak oldukça basittir. Aslında onu birçok kez kullandık. Örneğin, komut istemine şunu yazarsınız -
my_string = 'Tutorials Point'
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
my_string = Tutorials Point
MATLAB tüm değişkenleri diziler olarak kabul eder ve dizeler karakter dizileri olarak kabul edilir. Kullanalımwhos yukarıda oluşturulan değişkeni kontrol etmek için komut -
whos
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
Name Size Bytes Class Attributes
my_string 1x16 32 char
İlginç bir şekilde, sayısal dönüştürme işlevlerini kullanabilirsiniz. uint8 veya uint16dizedeki karakterleri sayısal kodlarına dönüştürmek için. char fonksiyon tamsayı vektörünü tekrar karakterlere dönüştürür -
Misal
Bir komut dosyası oluşturun ve aşağıdaki kodu içine yazın -
my_string = 'Tutorial''s Point';
str_ascii = uint8(my_string) % 8-bit ascii values
str_back_to_char= char(str_ascii)
str_16bit = uint16(my_string) % 16-bit ascii values
str_back_to_char = char(str_16bit)
Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -
str_ascii =
84 117 116 111 114 105 97 108 39 115 32 80 111 105 110 116
str_back_to_char = Tutorial's Point
str_16bit =
84 117 116 111 114 105 97 108 39 115 32 80 111 105 110 116
str_back_to_char = Tutorial's Point
Dikdörtgen Karakter Dizisi
Şimdiye kadar tartıştığımız dizeler tek boyutlu karakter dizileridir; ancak bundan daha fazlasını depolamamız gerekiyor. Programımızda daha boyutlu metinsel verileri depolamamız gerekiyor. Bu, dikdörtgen karakter dizileri oluşturarak elde edilir.
Dikdörtgen bir karakter dizisi oluşturmanın en basit yolu, iki veya daha fazla tek boyutlu karakter dizisini gerektiği gibi dikey veya yatay olarak birleştirmektir.
Dizeleri aşağıdaki yollardan biriyle dikey olarak birleştirebilirsiniz -
MATLAB birleştirme operatörünü kullanma []ve her satırı bir noktalı virgülle (;) ayırmak. Lütfen bu yöntemde her satırın aynı sayıda karakter içermesi gerektiğini unutmayın. Farklı uzunluktaki dizeler için, gerektiğinde boşluk karakterleri ile doldurmalısınız.
Kullanmak charişlevi. Dizeler farklı uzunluklarda ise karakter, her satırın aynı sayıda karaktere sahip olması için kısa dizeleri sonda boşluklarla doldurur.
Misal
Bir komut dosyası oluşturun ve aşağıdaki kodu içine yazın -
doc_profile = ['Zara Ali '; ...
'Sr. Surgeon '; ...
'R N Tagore Cardiology Research Center']
doc_profile = char('Zara Ali', 'Sr. Surgeon', ...
'RN Tagore Cardiology Research Center')
Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -
doc_profile =
Zara Ali
Sr. Surgeon
R N Tagore Cardiology Research Center
doc_profile =
Zara Ali
Sr. Surgeon
RN Tagore Cardiology Research Center
Dizeleri aşağıdaki yöntemlerden biriyle yatay olarak birleştirebilirsiniz -
MATLAB birleştirme operatörünü kullanarak, []ve giriş dizelerini virgül veya boşlukla ayırmak. Bu yöntem, giriş dizilerindeki sondaki boşlukları korur.
Dize birleştirme işlevini kullanarak, strcat. Bu yöntem, girişlerdeki sondaki boşlukları kaldırır.
Misal
Bir komut dosyası oluşturun ve aşağıdaki kodu içine yazın -
name = 'Zara Ali ';
position = 'Sr. Surgeon ';
worksAt = 'R N Tagore Cardiology Research Center';
profile = [name ', ' position ', ' worksAt]
profile = strcat(name, ', ', position, ', ', worksAt)
Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -
profile = Zara Ali , Sr. Surgeon , R N Tagore Cardiology Research Center
profile = Zara Ali,Sr. Surgeon,R N Tagore Cardiology Research Center
Dizeleri Hücre Dizisinde Birleştirme
Önceki tartışmamızdan, dizideki tüm dizelerin aynı uzunlukta olması gerektiğinden, farklı uzunluklardaki dizeleri birleştirmenin bir acı olabileceği açıktır. Uzunluklarını eşitlemek için dizelerin sonunda boşluklar kullandık.
Bununla birlikte, dizeleri birleştirmenin daha verimli bir yolu, ortaya çıkan diziyi bir hücre dizisine dönüştürmektir.
MATLAB hücre dizisi, bir dizide farklı boyut ve veri türlerini tutabilir. Hücre dizileri, değişen uzunluktaki dizeleri depolamak için daha esnek bir yol sağlar.
cellstr işlev bir karakter dizisini dizelerden oluşan bir hücre dizisine dönüştürür.
Misal
Bir komut dosyası oluşturun ve aşağıdaki kodu içine yazın -
name = 'Zara Ali ';
position = 'Sr. Surgeon ';
worksAt = 'R N Tagore Cardiology Research Center';
profile = char(name, position, worksAt);
profile = cellstr(profile);
disp(profile)
Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -
{
[1,1] = Zara Ali
[2,1] = Sr. Surgeon
[3,1] = R N Tagore Cardiology Research Center
}
MATLAB'da String Fonksiyonları
MATLAB, dizeleri oluşturan, birleştiren, ayrıştıran, karşılaştıran ve değiştiren çok sayıda dize işlevi sağlar.
Aşağıdaki tablo, MATLAB'daki dizi işlevlerinin kısa açıklamasını sağlar -
Fonksiyon | Amaç |
---|---|
Metni karakter dizilerinde saklamak, karakter dizilerini birleştirmek vb. İçin işlevler. | |
boşluklar | Boş karakter dizesi oluşturun |
Cellstr | Karakter dizisinden hücre dizisi dizisi oluşturun |
kömür | Karakter dizisine (dize) dönüştür |
iscellstr | Girdinin dizelerin hücre dizisi olup olmadığını belirleme |
ischar | Öğenin karakter dizisi olup olmadığını belirleyin |
sprintf | Verileri dizeye biçimlendir |
strcat | Dizeleri yatay olarak birleştirin |
strjoin | Hücre dizisindeki dizeleri tek dizede birleştirin |
Dizelerin parçalarını tanımlama, alt dizeleri bulma ve değiştirme işlevleri | |
ischar | Öğenin karakter dizisi olup olmadığını belirleyin |
isletter | Alfabetik harflerden oluşan dizi öğeleri |
isspace | Uzay karakterleri olan dizi öğeleri |
isstrprop | Dizenin belirtilen kategoride olup olmadığını belirleyin |
sscanf | Biçimlendirilmiş verileri dizeden oku |
strfind | Diğerinin içinde bir dize bulun |
strrep | Alt dizeyi bul ve değiştir |
strsplit | Dizeyi belirtilen sınırlayıcıda böl |
strtok | İpin seçilen kısımları |
onaylayan | Metin dizesinin geçerliliğini kontrol edin |
Symvar | İfadede sembolik değişkenleri belirle |
regexp | Normal ifadeyi eşleştir (büyük / küçük harfe duyarlı) |
regexpi | Normal ifadeyle eşleştir (büyük / küçük harfe duyarlı değildir) |
regexprep | Normal ifade kullanarak dizeyi değiştirin |
regexptranslate | Dizeyi normal ifadeye çevir |
Dize karşılaştırması için işlevler | |
strcmp | Dizeleri karşılaştırın (büyük / küçük harfe duyarlı) |
strcmpi | Dizeleri karşılaştırın (büyük / küçük harfe duyarlı değildir) |
strncmp | Dizelerin ilk n karakterini karşılaştırın (büyük / küçük harfe duyarlı) |
strncmpi | Dizelerin ilk n karakterini karşılaştırın (büyük / küçük harfe duyarlı değildir) |
Dizeyi büyük veya küçük harfe çevirme, boşluk oluşturma veya kaldırma işlevleri | |
deblank | Dizenin sonundaki boşlukları soyun |
strtrim | Dizeden baştaki ve sondaki beyaz boşluğu kaldırın |
aşağı | Dizeyi küçük harfe dönüştür |
üst | Dizeyi büyük harfe dönüştür |
strjust | Karakter dizisini iki yana yasla |
Örnekler
Aşağıdaki örnekler, yukarıda bahsedilen dize işlevlerinden bazılarını göstermektedir -
Dizeleri Biçimlendirme
Bir komut dosyası oluşturun ve aşağıdaki kodu içine yazın -
A = pi*1000*ones(1,5);
sprintf(' %f \n %.2f \n %+.2f \n %12.2f \n %012.2f \n', A)
Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -
ans = 3141.592654
3141.59
+3141.59
3141.59
000003141.59
Dizelere Katılma
Bir komut dosyası oluşturun ve aşağıdaki kodu içine yazın -
%cell array of strings
str_array = {'red','blue','green', 'yellow', 'orange'};
% Join strings in cell array into single string
str1 = strjoin(str_array, "-")
str2 = strjoin(str_array, ",")
Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -
str1 = red-blue-green-yellow-orange
str2 = red,blue,green,yellow,orange
Dizeleri Bulma ve Değiştirme
Bir komut dosyası oluşturun ve aşağıdaki kodu içine yazın -
students = {'Zara Ali', 'Neha Bhatnagar', ...
'Monica Malik', 'Madhu Gautam', ...
'Madhu Sharma', 'Bhawna Sharma',...
'Nuha Ali', 'Reva Dutta', ...
'Sunaina Ali', 'Sofia Kabir'};
% The strrep function searches and replaces sub-string.
new_student = strrep(students(8), 'Reva', 'Poulomi')
% Display first names
first_names = strtok(students)
Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -
new_student =
{
[1,1] = Poulomi Dutta
}
first_names =
{
[1,1] = Zara
[1,2] = Neha
[1,3] = Monica
[1,4] = Madhu
[1,5] = Madhu
[1,6] = Bhawna
[1,7] = Nuha
[1,8] = Reva
[1,9] = Sunaina
[1,10] = Sofia
}
Dizeleri Karşılaştırma
Bir komut dosyası oluşturun ve aşağıdaki kodu içine yazın -
str1 = 'This is test'
str2 = 'This is text'
if (strcmp(str1, str2))
sprintf('%s and %s are equal', str1, str2)
else
sprintf('%s and %s are not equal', str1, str2)
end
Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -
str1 = This is test
str2 = This is text
ans = This is test and This is text are not equal
Bir işlev, birlikte bir görevi yerine getiren bir grup deyimdir. MATLAB'da işlevler ayrı dosyalarda tanımlanır. Dosyanın ve işlevin adı aynı olmalıdır.
Fonksiyonlar, kendi çalışma alanları içinde değişkenler üzerinde çalışır ve buna aynı zamanda local workspace, MATLAB komut isteminde eriştiğiniz çalışma alanından ayrı olarak base workspace.
Fonksiyonlar birden fazla girdi argümanını kabul edebilir ve birden fazla çıktı argümanı döndürebilir.
Bir fonksiyon ifadesinin sözdizimi -
function [out1,out2, ..., outN] = myfun(in1,in2,in3, ..., inN)
Misal
Mymax adlı aşağıdaki işlev, mymax.m adlı bir dosyaya yazılmalıdır . Bağımsız değişken olarak beş sayı alır ve sayıların maksimumunu döndürür.
Mymax.m adında bir işlev dosyası oluşturun ve içine aşağıdaki kodu yazın -
function max = mymax(n1, n2, n3, n4, n5)
%This function calculates the maximum of the
% five numbers given as input
max = n1;
if(n2 > max)
max = n2;
end
if(n3 > max)
max = n3;
end
if(n4 > max)
max = n4;
end
if(n5 > max)
max = n5;
end
Bir fonksiyonun ilk satırı, anahtar kelimeyle başlar function. Fonksiyonun adını ve argümanların sırasını verir. Örneğimizde, mymax fonksiyonunun beş giriş argümanı ve bir çıkış argümanı vardır.
Fonksiyon ifadesinden hemen sonra gelen yorum satırları yardım metnini sağlar. Bu satırlar siz yazdığınızda yazdırılır -
help mymax
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
This function calculates the maximum of the
five numbers given as input
İşlevi şu şekilde çağırabilirsiniz -
mymax(34, 78, 89, 23, 11)
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
ans = 89
Anonim İşlevler
Anonim bir işlev, geleneksel programlama dillerinde tek bir MATLAB ifadesi içinde tanımlanan bir satır içi işlev gibidir. Tek bir MATLAB ifadesinden ve herhangi bir sayıda girdi ve çıktı bağımsız değişkeninden oluşur.
Anonim bir işlevi doğrudan MATLAB komut satırında veya bir işlev veya komut dosyası içinde tanımlayabilirsiniz.
Bu şekilde, onlar için bir dosya oluşturmak zorunda kalmadan basit işlevler oluşturabilirsiniz.
Bir ifadeden anonim bir işlev oluşturmak için sözdizimi şöyledir:
f = @(arglist)expression
Misal
Bu örnekte, giriş olarak iki sayıyı alacak ve ikinci sayının üssüne yükseltilmiş ilk sayıyı döndürecek olan, güç adında anonim bir işlev yazacağız.
Bir komut dosyası oluşturun ve içine aşağıdaki kodu yazın -
power = @(x, n) x.^n;
result1 = power(7, 3)
result2 = power(49, 0.5)
result3 = power(10, -10)
result4 = power (4.5, 1.5)
Dosyayı çalıştırdığınızda, -
result1 = 343
result2 = 7
result3 = 1.0000e-10
result4 = 9.5459
Birincil ve Alt İşlevler
Anonim işlev dışındaki herhangi bir işlev bir dosya içinde tanımlanmalıdır. Her işlev dosyası, ilk önce görünen gerekli bir birincil işlevi ve birincil işlevden sonra gelen ve onun tarafından kullanılan herhangi bir sayıda isteğe bağlı alt işlevi içerir.
Birincil işlevler, onları tanımlayan dosyanın dışından, komut satırından veya diğer işlevlerden çağrılabilir, ancak alt işlevler, işlev dosyası dışında komut satırından veya diğer işlevlerden çağrılamaz.
Alt işlevler, yalnızca birincil işlev ve onları tanımlayan işlev dosyasındaki diğer alt işlevler tarafından görülebilir.
Misal
İkinci dereceden bir denklemin köklerini hesaplayacak ikinci dereceden adlı bir fonksiyon yazalım. Fonksiyon üç girdi alacaktı, ikinci dereceden ortak verimli, doğrusal ortak verimli ve sabit terim. Kökleri geri getirecekti.
Quadratic.m fonksiyon dosyası, birincil fonksiyonu quadratic ve diskriminantı hesaplayan alt fonksiyon diskini içerecektir.
Quadratic.m işlev dosyası oluşturun ve içine aşağıdaki kodu yazın -
function [x1,x2] = quadratic(a,b,c)
%this function returns the roots of
% a quadratic equation.
% It takes 3 input arguments
% which are the co-efficients of x2, x and the
%constant term
% It returns the roots
d = disc(a,b,c);
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end % end of quadratic
function dis = disc(a,b,c)
%function calculates the discriminant
dis = sqrt(b^2 - 4*a*c);
end % end of sub-function
Yukarıdaki işlevi komut isteminden şu şekilde çağırabilirsiniz -
quadratic(2,4,-4)
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
ans = 0.7321
İç İçe İşlevler
Başka bir işlevin gövdesi içindeki işlevleri tanımlayabilirsiniz. Bunlara iç içe geçmiş işlevler denir. İç içe geçmiş bir işlev, başka herhangi bir işlevin bileşenlerinden herhangi birini veya tümünü içerir.
İç içe geçmiş işlevler, başka bir işlevin kapsamında tanımlanır ve içeren işlevin çalışma alanına erişimi paylaşırlar.
İç içe geçmiş bir işlev aşağıdaki sözdizimini izler -
function x = A(p1, p2)
...
B(p2)
function y = B(p3)
...
end
...
end
Misal
Önceki örnekten ikinci dereceden işlevi yeniden yazalım , ancak bu sefer disk işlevi iç içe geçmiş bir işlev olacaktır.
Bir işlev dosyası quadratic2.m oluşturun ve içine aşağıdaki kodu yazın -
function [x1,x2] = quadratic2(a,b,c)
function disc % nested function
d = sqrt(b^2 - 4*a*c);
end % end of function disc
disc;
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end % end of function quadratic2
Yukarıdaki işlevi komut isteminden şu şekilde çağırabilirsiniz -
quadratic2(2,4,-4)
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
ans = 0.73205
Özel İşlevler
Özel işlev, yalnızca sınırlı bir grup diğer işlev tarafından görülebilen birincil işlevdir. Bir işlevin uygulanmasını göstermek istemiyorsanız, bunları özel işlevler olarak oluşturabilirsiniz.
Özel işlevler şurada bulunur: subfolders özel isimle private.
Yalnızca üst klasördeki işlevler tarafından görülebilirler.
Misal
İkinci dereceden fonksiyonu yeniden yazalım . Ancak bu sefer ayırıcıyı hesaplayan disk işlevi özel bir işlev olacaktır.
Çalışma dizininde özel adlı bir alt klasör oluşturun. Aşağıdaki disc.m işlev dosyasını içine kaydedin -
function dis = disc(a,b,c)
%function calculates the discriminant
dis = sqrt(b^2 - 4*a*c);
end % end of sub-function
Çalışma dizininizde bir quadratic3.m işlevi oluşturun ve içine aşağıdaki kodu yazın -
function [x1,x2] = quadratic3(a,b,c)
%this function returns the roots of
% a quadratic equation.
% It takes 3 input arguments
% which are the co-efficient of x2, x and the
%constant term
% It returns the roots
d = disc(a,b,c);
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end % end of quadratic3
Yukarıdaki işlevi komut isteminden şu şekilde çağırabilirsiniz -
quadratic3(2,4,-4)
MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -
ans = 0.73205
Global Değişkenler
Global değişkenler birden fazla işlev tarafından paylaşılabilir. Bunun için tüm fonksiyonlarda değişkeni global olarak tanımlamanız gerekir.
Bu değişkene temel çalışma alanından erişmek istiyorsanız, değişkeni komut satırında bildirin.
Global bildirim, değişken gerçekten bir işlevde kullanılmadan önce gerçekleşmelidir. Global değişkenlerin adlarını diğer değişkenlerden ayırmak için büyük harf kullanmak iyi bir uygulamadır.
Misal
Average.m adında bir fonksiyon dosyası oluşturalım ve içine aşağıdaki kodu yazalım -
function avg = average(nums)
global TOTAL
avg = sum(nums)/TOTAL;
end
Bir komut dosyası oluşturun ve içine aşağıdaki kodu yazın -
global TOTAL;
TOTAL = 10;
n = [34, 45, 25, 45, 33, 19, 40, 34, 38, 42];
av = average(n)
Dosyayı çalıştırdığınızda, aşağıdaki sonucu gösterecektir -
av = 35.500
MATLAB'a veri aktarmak, harici bir dosyadan veri yüklemek anlamına gelir. importdataişlevi, farklı biçimlerdeki çeşitli veri dosyalarının yüklenmesine izin verir. Aşağıdaki beş forma sahiptir -
Sr.No. | İşlev ve Açıklama |
---|---|
1 | A = importdata(filename) Dosyadan dizi A içine yükler veri ile temsil edilen dosya . |
2 | A = importdata('-pastespecial') Verileri bir dosyadan ziyade sistem panosundan yükler. |
3 | A = importdata(___, delimiterIn) ASCII dosyası, dosya adı veya pano verilerindeki sütun ayırıcı olarak delimiterIn'i yorumlar . Sen kullanabilirsiniz delimiterIn yukarıdaki söz dizimi girdi argümanları herhangi biriyle. |
4 | A = importdata(___, delimiterIn, headerlinesIn) ASCII dosyası, dosya adı veya panodan verileri yükler, satır başlıkları + 1'den başlayarak sayısal verileri okur . |
5 | [A, delimiterOut, headerlinesOut] = importdata(___) Önceki sözdizimlerindeki giriş bağımsız değişkenlerinden herhangi birini kullanarak delimiterOut'taki giriş ASCII dosyası için algılanan sınırlayıcı karakterini ve headerlinesOut'ta algılanan başlık satırı sayısını döndürür. |
Varsayılan olarak, Octave'nin importdata () işlevi için desteği yoktur , bu nedenle aşağıdaki örneklerin Octave kurulumunuzla çalışması için bu paketi aramanız ve yüklemeniz gerekir.
örnek 1
Bir resim dosyası yükleyip görüntüleyelim. Bir komut dosyası oluşturun ve içine aşağıdaki kodu yazın -
filename = 'smile.jpg';
A = importdata(filename);
image(A);
Dosyayı çalıştırdığınızda, MATLAB görüntü dosyasını görüntüler. Ancak, bunu geçerli dizinde saklamalısınız.
Örnek 2
Bu örnekte, bir metin dosyası içe aktarıyoruz ve Sınırlayıcı ve Sütun Başlığı belirtiyoruz. Weeklydata.txt adlı sütun başlıklarına sahip boşlukla sınırlandırılmış bir ASCII dosyası oluşturalım .
Weeklydata.txt metin dosyamız şuna benzer -
SunDay MonDay TuesDay WednesDay ThursDay FriDay SaturDay
95.01 76.21 61.54 40.57 55.79 70.28 81.53
73.11 45.65 79.19 93.55 75.29 69.87 74.68
60.68 41.85 92.18 91.69 81.32 90.38 74.51
48.60 82.14 73.82 41.03 0.99 67.22 93.18
89.13 44.47 57.63 89.36 13.89 19.88 46.60
Bir komut dosyası oluşturun ve içine aşağıdaki kodu yazın -
filename = 'weeklydata.txt';
delimiterIn = ' ';
headerlinesIn = 1;
A = importdata(filename,delimiterIn,headerlinesIn);
% View data
for k = [1:7]
disp(A.colheaders{1, k})
disp(A.data(:, k))
disp(' ')
end
Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -
SunDay
95.0100
73.1100
60.6800
48.6000
89.1300
MonDay
76.2100
45.6500
41.8500
82.1400
44.4700
TuesDay
61.5400
79.1900
92.1800
73.8200
57.6300
WednesDay
40.5700
93.5500
91.6900
41.0300
89.3600
ThursDay
55.7900
75.2900
81.3200
0.9900
13.8900
FriDay
70.2800
69.8700
90.3800
67.2200
19.8800
SaturDay
81.5300
74.6800
74.5100
93.1800
46.6000
Örnek 3
Bu örnekte, verileri panodan içe aktaralım.
Aşağıdaki satırları panoya kopyalayın -
Mathematics is simple
Bir komut dosyası oluşturun ve aşağıdaki kodu yazın -
A = importdata('-pastespecial')
Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -
A =
'Mathematics is simple'
Düşük Seviyeli Dosya G / Ç
ImportData fonksiyonu yüksek seviyeli fonksiyonudur. MATLAB'daki düşük seviyeli dosya G / Ç işlevleri, bir dosyaya veri okuma veya yazma üzerinde en fazla kontrole izin verir. Ancak, bu işlevlerin verimli bir şekilde çalışması için dosyanız hakkında daha ayrıntılı bilgi gerekir.
MATLAB, bayt veya karakter düzeyinde okuma ve yazma işlemleri için aşağıdaki işlevleri sağlar -
Fonksiyon | Açıklama |
---|---|
fclose | Bir veya tüm açık dosyaları kapatın |
feof | Dosya sonu testi |
Ferror | Dosya G / Ç hataları hakkında bilgi |
fgetl | Dosyadan satırı oku, yeni satır karakterlerini kaldır |
fgets | Yeni satır karakterlerini koruyarak dosyadan satırı oku |
fopen | Dosyayı açın veya açık dosyalar hakkında bilgi alın |
fprintf | Verileri metin dosyasına yaz |
fread | Verileri ikili dosyadan oku |
serbest rüzgar | Dosya konumu göstergesini açık dosyanın başlangıcına taşı |
fscanf | Metin dosyasından verileri oku |
fseek | Dosyada belirtilen konuma git |
ftell | Açık dosyadaki konum |
fwrite | Verileri ikili dosyaya yaz |
Düşük Seviye G / Ç ile Metin Veri Dosyalarını İçe Aktarın
MATLAB, metin veri dosyalarının düşük düzeyde içe aktarılması için aşağıdaki işlevleri sağlar -
fscanf işlevi, biçimlendirilmiş verileri bir metin veya ASCII dosyasında okur.
fgetl ve fgets işlevler her seferinde bir dosyanın bir satırını okur; burada her satırı bir yeni satır karakteri ayırır.
fread işlevi bayt veya bit seviyesinde bir veri akışını okur.
Misal
Çalışma dizinimize kaydedilmiş bir metin veri dosyası 'myfile.txt' var. Dosya, yağış verilerini üç ay boyunca depolar; 2012 yılı için Haziran, Temmuz ve Ağustos.
Myfile.txt dosyasındaki veriler, beş yerde tekrarlanan zaman, ay ve yağış ölçüm kümelerini içerir. Başlık verileri ayların sayısını M; bu yüzden M ölçüm setimiz var.
Dosya şuna benziyor -
Rainfall Data
Months: June, July, August
M = 3
12:00:00
June-2012
17.21 28.52 39.78 16.55 23.67
19.15 0.35 17.57 NaN 12.01
17.92 28.49 17.40 17.06 11.09
9.59 9.33 NaN 0.31 0.23
10.46 13.17 NaN 14.89 19.33
20.97 19.50 17.65 14.45 14.00
18.23 10.34 17.95 16.46 19.34
09:10:02
July-2012
12.76 16.94 14.38 11.86 16.89
20.46 23.17 NaN 24.89 19.33
30.97 49.50 47.65 24.45 34.00
18.23 30.34 27.95 16.46 19.34
30.46 33.17 NaN 34.89 29.33
30.97 49.50 47.65 24.45 34.00
28.67 30.34 27.95 36.46 29.34
15:03:40
August-2012
17.09 16.55 19.59 17.25 19.22
17.54 11.45 13.48 22.55 24.01
NaN 21.19 25.85 25.05 27.21
26.79 24.98 12.23 16.99 18.67
17.54 11.45 13.48 22.55 24.01
NaN 21.19 25.85 25.05 27.21
26.79 24.98 12.23 16.99 18.67
Bu dosyadan veri aktaracağız ve bu verileri görüntüleyeceğiz. Aşağıdaki adımları uygulayın -
Dosyayı şununla açın: fopen işlevi ve dosya tanımlayıcısını alın.
Dosyadaki verileri şununla açıklayın: format specifiers, gibi '%s'bir dizi için'%d'tam sayı için veya'%fbir kayan nokta sayısı için.
Dosyadaki değişmez karakterleri atlamak için, bunları biçim açıklamasına dahil edin. Bir veri alanını atlamak için, belirticide bir yıldız işareti ('*') kullanın.
Örneğin, başlıkları okumak ve M için tek değeri döndürmek için şunu yazıyoruz -
M = fscanf(fid, '%*s %*s\n%*s %*s %*s %*s\nM=%d\n\n', 1);
Varsayılan olarak, fscanfVeriler için herhangi bir eşleşme bulana kadar veya dosyanın sonuna ulaşıncaya kadar verileri format açıklamamıza göre okur. Burada 3 set veriyi okumak için kullanacağız ve her seferinde 7 satır ve 5 sütun okuyacak.
Dosyadan okunan verileri saklamak için çalışma alanında mydata adlı bir yapı oluşturacağız . Bu yapının üç alanı vardır - zaman , ay ve raindata dizisi.
Bir komut dosyası oluşturun ve içine aşağıdaki kodu yazın -
filename = '/data/myfile.txt';
rows = 7;
cols = 5;
% open the file
fid = fopen(filename);
% read the file headers, find M (number of months)
M = fscanf(fid, '%*s %*s\n%*s %*s %*s %*s\nM=%d\n\n', 1);
% read each set of measurements
for n = 1:M
mydata(n).time = fscanf(fid, '%s', 1);
mydata(n).month = fscanf(fid, '%s', 1);
% fscanf fills the array in column order,
% so transpose the results
mydata(n).raindata = ...
fscanf(fid, '%f', [rows, cols]);
end
for n = 1:M
disp(mydata(n).time), disp(mydata(n).month)
disp(mydata(n).raindata)
end
% close the file
fclose(fid);
Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -
12:00:00
June-2012
17.2100 17.5700 11.0900 13.1700 14.4500
28.5200 NaN 9.5900 NaN 14.0000
39.7800 12.0100 9.3300 14.8900 18.2300
16.5500 17.9200 NaN 19.3300 10.3400
23.6700 28.4900 0.3100 20.9700 17.9500
19.1500 17.4000 0.2300 19.5000 16.4600
0.3500 17.0600 10.4600 17.6500 19.3400
09:10:02
July-2012
12.7600 NaN 34.0000 33.1700 24.4500
16.9400 24.8900 18.2300 NaN 34.0000
14.3800 19.3300 30.3400 34.8900 28.6700
11.8600 30.9700 27.9500 29.3300 30.3400
16.8900 49.5000 16.4600 30.9700 27.9500
20.4600 47.6500 19.3400 49.5000 36.4600
23.1700 24.4500 30.4600 47.6500 29.3400
15:03:40
August-2012
17.0900 13.4800 27.2100 11.4500 25.0500
16.5500 22.5500 26.7900 13.4800 27.2100
19.5900 24.0100 24.9800 22.5500 26.7900
17.2500 NaN 12.2300 24.0100 24.9800
19.2200 21.1900 16.9900 NaN 12.2300
17.5400 25.8500 18.6700 21.1900 16.9900
11.4500 25.0500 17.5400 25.8500 18.6700
MATLAB'da veri dışa aktarımı (veya çıkışı) dosyalara yazmak anlamına gelir. MATLAB, verilerinizi ASCII dosyalarını okuyan başka bir uygulamada kullanmanıza izin verir. Bunun için MATLAB birkaç veri dışa aktarma seçeneği sunar.
Aşağıdaki dosya türlerini oluşturabilirsiniz -
Bir diziden dikdörtgen, sınırlandırılmış ASCII veri dosyası.
Tuş vuruşlarının günlük (veya günlük) dosyası ve elde edilen metin çıktısı.
Fprintf gibi düşük seviyeli işlevleri kullanan özel ASCII dosyası.
Belirli bir metin dosyası formatına yazan C / C ++ veya Fortran rutininize erişmek için MEX dosyası.
Bunun dışında verileri elektronik tablolara da aktarabilirsiniz.
Sayısal bir diziyi sınırlandırılmış ASCII veri dosyası olarak dışa aktarmanın iki yolu vardır -
Kullanmak save işlevi ve belirtilmesi -ascii niteleyici
Kullanmak dlmwrite işlevi
Kaydet işlevini kullanmak için sözdizimi -
save my_data.out num_array -ascii
burada, my_data.out , oluşturulan ayrılmış ASCII veri dosyasıdır, num_array sayısal bir dizidir ve−ascii tanımlayıcıdır.
Kullanmak için sözdizimi dlmwrite işlev -
dlmwrite('my_data.out', num_array, 'dlm_char')
burada, my_data.out oluşturulan sınırlandırılmış ASCII veri dosyasıdır, num_array sayısal bir dizidir ve dlm_char sınırlayıcı karakterdir.
Misal
Aşağıdaki örnek kavramı göstermektedir. Bir komut dosyası oluşturun ve aşağıdaki kodu yazın -
num_array = [ 1 2 3 4 ; 4 5 6 7; 7 8 9 0];
save array_data1.out num_array -ascii;
type array_data1.out
dlmwrite('array_data2.out', num_array, ' ');
type array_data2.out
Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -
1.0000000e+00 2.0000000e+00 3.0000000e+00 4.0000000e+00
4.0000000e+00 5.0000000e+00 6.0000000e+00 7.0000000e+00
7.0000000e+00 8.0000000e+00 9.0000000e+00 0.0000000e+00
1 2 3 4
4 5 6 7
7 8 9 0
Save -ascii komutunun ve dlmwrite işlevinin girdi olarak hücre dizileriyle çalışmadığını lütfen unutmayın. Bir hücre dizisinin içeriğinden ayrılmış bir ASCII dosyası oluşturmak için şunları yapabilirsiniz:
Ya, hücre dizisini kullanarak matrise dönüştürün. cell2mat işlevi
Veya düşük seviyeli dosya G / Ç işlevlerini kullanarak hücre dizisini dışa aktarın.
Eğer kullanırsanız save işlevi bir ASCII dosyasına bir karakter dizisi yazmak için, karakterlerin ASCII eşdeğerini dosyaya yazar.
Örneğin, bir dosyaya 'merhaba' kelimesini yazalım -
h = 'hello';
save textdata.out h -ascii
type textdata.out
MATLAB yukarıdaki ifadeleri yürütür ve aşağıdaki sonucu görüntüler. 8 basamaklı ASCII biçimindeki 'merhaba' dizesinin karakterleri.
1.0400000e+02 1.0100000e+02 1.0800000e+02 1.0800000e+02 1.1100000e+02
Günlük Dosyalarına Yazmak
Günlük dosyaları, MATLAB oturumunuzun etkinlik günlükleridir. Günlük işlevi, grafikler hariç bir disk dosyasında oturumunuzun tam bir kopyasını oluşturur.
Günlük işlevini açmak için şunu yazın -
diary
İsteğe bağlı olarak, günlük dosyasının adını verebilirsiniz, örneğin -
diary logdata.out
Günlük işlevini kapatmak için -
diary off
Günlük dosyasını bir metin düzenleyicide açabilirsiniz.
Düşük Seviye G / Ç ile Verileri Metin Veri Dosyalarına Aktarma
Şimdiye kadar sayısal dizileri dışa aktardık. Ancak, sayısal ve karakter verilerinin kombinasyonları, dikdörtgen olmayan çıktı dosyaları veya ASCII olmayan kodlama şemalarına sahip dosyalar dahil olmak üzere başka metin dosyaları oluşturmanız gerekebilir. Bu amaçlar için MATLAB, düşük seviyelifprintf işlevi.
Düşük seviyeli G / Ç dosya faaliyetlerinde olduğu gibi, dışa aktarmadan önce, bir dosya açmanız veya oluşturmanız gerekir. fopenişlevi ve dosya tanımlayıcısını alın. Varsayılan olarak, fopen salt okunur erişim için bir dosya açar. Yazma veya ekleme iznini 'w' veya 'a' gibi belirtmelisiniz.
Dosyayı işledikten sonra kapatmanız gerekir. fclose(fid) işlevi.
Aşağıdaki örnek kavramı göstermektedir -
Misal
Bir komut dosyası oluşturun ve içine aşağıdaki kodu yazın -
% create a matrix y, with two rows
x = 0:10:100;
y = [x; log(x)];
% open a file for writing
fid = fopen('logtable.txt', 'w');
% Table Header
fprintf(fid, 'Log Function\n\n');
% print values in column order
% two values appear on each row of the file
fprintf(fid, '%f %f\n', y);
fclose(fid);
% display the file created
type logtable.txt
Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -
Log Function
0.000000 -Inf
10.000000 2.302585
20.000000 2.995732
30.000000 3.401197
40.000000 3.688879
50.000000 3.912023
60.000000 4.094345
70.000000 4.248495
80.000000 4.382027
90.000000 4.499810
100.000000 4.605170
Bir fonksiyonun grafiğini çizmek için aşağıdaki adımları uygulamanız gerekir -
Tanımlamak x, belirterek range of values değişken için x, bunun için fonksiyon çizilecek
İşlevi tanımlayın, y = f(x)
Ara plot komut olarak plot(x, y)
Aşağıdaki örnek, kavramı gösterecektir. Basit işlevi çizelimy = x 0'dan 100'e kadar x değerlerinin aralığı için, 5'lik bir artışla.
Bir komut dosyası oluşturun ve aşağıdaki kodu yazın -
x = [0:5:100];
y = x;
plot(x, y)
Dosyayı çalıştırdığınızda, MATLAB aşağıdaki grafiği görüntüler -
Y = x 2 fonksiyonunu çizmek için bir örnek daha alalım . Bu örnekte, aynı işleve sahip iki grafik çizeceğiz, ancak ikinci kez artış değerini azaltacağız. Artışı düşürdükçe grafiğin daha düzgün hale geldiğini lütfen unutmayın.
Bir komut dosyası oluşturun ve aşağıdaki kodu yazın -
x = [1 2 3 4 5 6 7 8 9 10];
x = [-100:20:100];
y = x.^2;
plot(x, y)
Dosyayı çalıştırdığınızda, MATLAB aşağıdaki grafiği görüntüler -
Kod dosyasını biraz değiştirin, artışı 5'e düşürün -
x = [-100:5:100];
y = x.^2;
plot(x, y)
MATLAB daha düzgün bir grafik çizer -
Grafik Üzerine Başlık, Etiket, Izgara Çizgileri ve Ölçek Ekleme
MATLAB, başlık, x ekseni ve y ekseni boyunca etiketler, ızgara çizgileri eklemenize ve ayrıca grafiği çeki düzen vermek için eksenleri ayarlamanıza olanak tanır.
xlabel ve ylabel komutlar x ekseni ve y ekseni boyunca etiketler oluşturur.
title komutu grafiğe bir başlık koymanıza izin verir.
grid on komutu, ızgara çizgilerini grafiğin üzerine koymanıza olanak tanır.
axis equal komutu, aynı ölçek faktörleri ve her iki eksendeki boşluklarla çizim oluşturmaya izin verir.
axis square komutu bir kare arsa oluşturur.
Misal
Bir komut dosyası oluşturun ve aşağıdaki kodu yazın -
x = [0:0.01:10];
y = sin(x);
plot(x, y), xlabel('x'), ylabel('Sin(x)'), title('Sin(x) Graph'),
grid on, axis equal
MATLAB aşağıdaki grafiği oluşturur -
Aynı Grafik Üzerinde Birden Çok Fonksiyon Çizme
Aynı çizim üzerine birden fazla grafik çizebilirsiniz. Aşağıdaki örnek kavramı göstermektedir -
Misal
Bir komut dosyası oluşturun ve aşağıdaki kodu yazın -
x = [0 : 0.01: 10];
y = sin(x);
g = cos(x);
plot(x, y, x, g, '.-'), legend('Sin(x)', 'Cos(x)')
MATLAB aşağıdaki grafiği oluşturur -
Grafikte Renkleri Ayarlama
MATLAB, grafikler çizmek için sekiz temel renk seçeneği sunar. Aşağıdaki tablo renkleri ve kodlarını gösterir -
Kod | Renk |
---|---|
w | Beyaz |
k | Siyah |
b | Mavi |
r | Kırmızı |
c | Mavi |
g | Yeşil |
m | Eflatun |
y | Sarı |
Misal
İki polinomun grafiğini çizelim
f (x) = 3x 4 + 2x 3 + 7x 2 + 2x + 9 ve
g (x) = 5x 3 + 9x + 2
Bir komut dosyası oluşturun ve aşağıdaki kodu yazın -
x = [-10 : 0.01: 10];
y = 3*x.^4 + 2 * x.^3 + 7 * x.^2 + 2 * x + 9;
g = 5 * x.^3 + 9 * x + 2;
plot(x, y, 'r', x, g, 'g')
Dosyayı çalıştırdığınızda, MATLAB aşağıdaki grafiği oluşturur -
Eksen Ölçeklerini Ayarlama
axiskomutu eksen ölçeklerini ayarlamanıza izin verir. Eksen komutunu aşağıdaki şekilde kullanarak x ve y eksenleri için minimum ve maksimum değerleri sağlayabilirsiniz -
axis ( [xmin xmax ymin ymax] )
Aşağıdaki örnek bunu göstermektedir -
Misal
Bir komut dosyası oluşturun ve aşağıdaki kodu yazın -
x = [0 : 0.01: 10];
y = exp(-x).* sin(2*x + 3);
plot(x, y), axis([0 10 -1 1])
Dosyayı çalıştırdığınızda, MATLAB aşağıdaki grafiği oluşturur -
Alt Grafikler Oluşturma
Aynı şekilde bir grafik dizisi oluşturduğunuzda, bu grafiklerin her birine alt grafik adı verilir. subplot komutu, alt grafikler oluşturmak için kullanılır.
Komutun sözdizimi -
subplot(m, n, p)
burada, m ve n , plot dizisinin satır ve sütunlarının sayısıdır ve p , belirli bir grafiğin nereye yerleştirileceğini belirtir.
Subplot komutuyla oluşturulan her çizimin kendine has özellikleri olabilir. Aşağıdaki örnek kavramı göstermektedir -
Misal
İki parsel oluşturalım -
y = e −1,5x günah (10x)
y = e −2x günah (10x)
Bir komut dosyası oluşturun ve aşağıdaki kodu yazın -
x = [0:0.01:5];
y = exp(-1.5*x).*sin(10*x);
subplot(1,2,1)
plot(x,y), xlabel('x'),ylabel('exp(–1.5x)*sin(10x)'),axis([0 5 -1 1])
y = exp(-2*x).*sin(10*x);
subplot(1,2,2)
plot(x,y),xlabel('x'),ylabel('exp(–2x)*sin(10x)'),axis([0 5 -1 1])
Dosyayı çalıştırdığınızda, MATLAB aşağıdaki grafiği oluşturur -
Bu bölüm, MATLAB'ın çizim ve grafik yeteneklerini keşfetmeye devam edecektir. Tartışacağız -
- Çubuk grafikler çizme
- Kontür çizme
- Üç boyutlu grafikler
Çubuk Grafik Çizimi
barkomutu iki boyutlu bir çubuk grafik çizer. Fikri göstermek için bir örnek alalım.
Misal
10 öğrencili hayali bir sınıfımız olsun. Bu öğrencilerin aldıkları puanların yüzdesinin 75, 58, 90, 87, 50, 85, 92, 75, 60 ve 95 olduğunu biliyoruz. Bu veriler için çubuk grafik çizeceğiz.
Bir komut dosyası oluşturun ve aşağıdaki kodu yazın -
x = [1:10];
y = [75, 58, 90, 87, 50, 85, 92, 75, 60, 95];
bar(x,y), xlabel('Student'),ylabel('Score'),
title('First Sem:')
print -deps graph.eps
Dosyayı çalıştırdığınızda, MATLAB aşağıdaki çubuk grafiği görüntüler -
Kontur Çizimi
İki değişkenli bir fonksiyonun kontur çizgisi, fonksiyonun sabit bir değere sahip olduğu bir eğridir. Kontur çizgileri, ortalama deniz seviyesi gibi belirli bir seviyenin üzerindeki eşit yükseklikteki noktaları birleştirerek kontur haritaları oluşturmak için kullanılır.
MATLAB, contour kontur haritalarının çizilmesi için fonksiyon.
Misal
Verilen bir g = f (x, y) fonksiyonu için kontur çizgilerini gösteren bir kontur haritası oluşturalım. Bu fonksiyonun iki değişkeni vardır. Dolayısıyla, iki bağımsız değişken, yani iki veri seti x ve y oluşturmamız gerekecek. Bu, arayarak yapılırmeshgrid komut.
meshgrid komutu, x ve y üzerindeki aralığı her durumda artış belirtimiyle birlikte veren bir eleman matrisi oluşturmak için kullanılır.
G = f (x, y) fonksiyonumuzu çizelim, burada −5 ≤ x ≤ 5, −3 ≤ y ≤ 3. Her iki değer için 0.1'lik bir artış alalım. Değişkenler şu şekilde ayarlanır -
[x,y] = meshgrid(–5:0.1:5, –3:0.1:3);
Son olarak, işlevi atamamız gerekiyor. Fonksiyonumuz şöyle olsun: x 2 + y 2
Bir komut dosyası oluşturun ve aşağıdaki kodu yazın -
[x,y] = meshgrid(-5:0.1:5,-3:0.1:3); %independent variables
g = x.^2 + y.^2; % our function
contour(x,y,g) % call the contour function
print -deps graph.eps
Dosyayı çalıştırdığınızda, MATLAB aşağıdaki kontur haritasını görüntüler -
Haritayı biraz canlandırmak için kodu biraz değiştirelim
[x,y] = meshgrid(-5:0.1:5,-3:0.1:3); %independent variables
g = x.^2 + y.^2; % our function
[C, h] = contour(x,y,g); % call the contour function
set(h,'ShowText','on','TextStep',get(h,'LevelStep')*2)
print -deps graph.eps
Dosyayı çalıştırdığınızda, MATLAB aşağıdaki kontur haritasını görüntüler -
Üç Boyutlu Grafikler
Üç boyutlu grafikler temelde iki değişkenli bir fonksiyon tarafından tanımlanan bir yüzeyi g = f (x, y) gösterir.
Daha önce olduğu gibi, g'yi tanımlamak için, önce işlevin etki alanı üzerinde bir (x, y) nokta kümesi oluşturuyoruz. meshgridkomut. Ardından, fonksiyonun kendisini atarız. Son olarak, kullanıyoruzsurf yüzey grafiği oluşturma komutu.
Aşağıdaki örnek kavramı göstermektedir -
Misal
G = xe - (x 2 + y 2 ) fonksiyonu için bir 3B yüzey haritası oluşturalım.
Create a script file and type the following code −
[x,y] = meshgrid(-2:.2:2);
g = x .* exp(-x.^2 - y.^2);
surf(x, y, g)
print -deps graph.eps
When you run the file, MATLAB displays the following 3-D map −
You can also use the mesh command to generate a three-dimensional surface. However, the surf command displays both the connecting lines and the faces of the surface in color, whereas, the mesh command creates a wireframe surface with colored lines connecting the defining points.
So far, we have seen that all the examples work in MATLAB as well as its GNU, alternatively called Octave. But for solving basic algebraic equations, both MATLAB and Octave are little different, so we will try to cover MATLAB and Octave in separate sections.
We will also discuss factorizing and simplification of algebraic expressions.
Solving Basic Algebraic Equations in MATLAB
The solve function is used for solving algebraic equations. In its simplest form, the solve function takes the equation enclosed in quotes as an argument.
For example, let us solve for x in the equation x-5 = 0
solve('x-5=0')
MATLAB will execute the above statement and return the following result −
ans =
5
You can also call the solve function as −
y = solve('x-5 = 0')
MATLAB will execute the above statement and return the following result −
y =
5
You may even not include the right hand side of the equation −
solve('x-5')
MATLAB will execute the above statement and return the following result −
ans =
5
If the equation involves multiple symbols, then MATLAB by default assumes that you are solving for x, however, the solve function has another form −
solve(equation, variable)
where, you can also mention the variable.
For example, let us solve the equation v – u – 3t2 = 0, for v. In this case, we should write −
solve('v-u-3*t^2=0', 'v')
MATLAB will execute the above statement and return the following result −
ans =
3*t^2 + u
Solving Basic Algebraic Equations in Octave
The roots function is used for solving algebraic equations in Octave and you can write above examples as follows −
For example, let us solve for x in the equation x-5 = 0
roots([1, -5])
Octave will execute the above statement and return the following result −
ans = 5
You can also call the solve function as −
y = roots([1, -5])
Octave will execute the above statement and return the following result −
y = 5
Solving Quadratic Equations in MATLAB
The solve function can also solve higher order equations. It is often used to solve quadratic equations. The function returns the roots of the equation in an array.
The following example solves the quadratic equation x2 -7x +12 = 0. Create a script file and type the following code −
eq = 'x^2 -7*x + 12 = 0';
s = solve(eq);
disp('The first root is: '), disp(s(1));
disp('The second root is: '), disp(s(2));
When you run the file, it displays the following result −
The first root is:
3
The second root is:
4
Solving Quadratic Equations in Octave
The following example solves the quadratic equation x2 -7x +12 = 0 in Octave. Create a script file and type the following code −
s = roots([1, -7, 12]);
disp('The first root is: '), disp(s(1));
disp('The second root is: '), disp(s(2));
When you run the file, it displays the following result −
The first root is:
4
The second root is:
3
Solving Higher Order Equations in MATLAB
The solve function can also solve higher order equations. For example, let us solve a cubic equation as (x-3)2(x-7) = 0
solve('(x-3)^2*(x-7)=0')
MATLAB will execute the above statement and return the following result −
ans =
3
3
7
In case of higher order equations, roots are long containing many terms. You can get the numerical value of such roots by converting them to double. The following example solves the fourth order equation x4 − 7x3 + 3x2 − 5x + 9 = 0.
Create a script file and type the following code −
eq = 'x^4 - 7*x^3 + 3*x^2 - 5*x + 9 = 0';
s = solve(eq);
disp('The first root is: '), disp(s(1));
disp('The second root is: '), disp(s(2));
disp('The third root is: '), disp(s(3));
disp('The fourth root is: '), disp(s(4));
% converting the roots to double type
disp('Numeric value of first root'), disp(double(s(1)));
disp('Numeric value of second root'), disp(double(s(2)));
disp('Numeric value of third root'), disp(double(s(3)));
disp('Numeric value of fourth root'), disp(double(s(4)));
When you run the file, it returns the following result −
The first root is:
6.630396332390718431485053218985
The second root is:
1.0597804633025896291682772499885
The third root is:
- 0.34508839784665403032666523448675 - 1.0778362954630176596831109269793*i
The fourth root is:
- 0.34508839784665403032666523448675 + 1.0778362954630176596831109269793*i
Numeric value of first root
6.6304
Numeric value of second root
1.0598
Numeric value of third root
-0.3451 - 1.0778i
Numeric value of fourth root
-0.3451 + 1.0778i
Please note that the last two roots are complex numbers.
Solving Higher Order Equations in Octave
The following example solves the fourth order equation x4 − 7x3 + 3x2 − 5x + 9 = 0.
Create a script file and type the following code −
v = [1, -7, 3, -5, 9];
s = roots(v);
% converting the roots to double type
disp('Numeric value of first root'), disp(double(s(1)));
disp('Numeric value of second root'), disp(double(s(2)));
disp('Numeric value of third root'), disp(double(s(3)));
disp('Numeric value of fourth root'), disp(double(s(4)));
When you run the file, it returns the following result −
Numeric value of first root
6.6304
Numeric value of second root
-0.34509 + 1.07784i
Numeric value of third root
-0.34509 - 1.07784i
Numeric value of fourth root
1.0598
Solving System of Equations in MATLAB
The solve function can also be used to generate solutions of systems of equations involving more than one variables. Let us take up a simple example to demonstrate this use.
Let us solve the equations −
5x + 9y = 5
3x – 6y = 4
Create a script file and type the following code −
s = solve('5*x + 9*y = 5','3*x - 6*y = 4');
s.x
s.y
When you run the file, it displays the following result −
ans =
22/19
ans =
-5/57
In same way, you can solve larger linear systems. Consider the following set of equations −
x + 3y -2z = 5
3x + 5y + 6z = 7
2x + 4y + 3z = 8
Solving System of Equations in Octave
We have a little different approach to solve a system of 'n' linear equations in 'n' unknowns. Let us take up a simple example to demonstrate this use.
Let us solve the equations −
5x + 9y = 5
3x – 6y = 4
Such a system of linear equations can be written as the single matrix equation Ax = b, where A is the coefficient matrix, b is the column vector containing the right-hand side of the linear equations and x is the column vector representing the solution as shown in the below program −
Create a script file and type the following code −
A = [5, 9; 3, -6];
b = [5;4];
A \ b
When you run the file, it displays the following result −
ans =
1.157895
-0.087719
In same way, you can solve larger linear systems as given below −
x + 3y -2z = 5
3x + 5y + 6z = 7
2x + 4y + 3z = 8
Expanding and Collecting Equations in MATLAB
The expand and the collect function expands and collects an equation respectively. The following example demonstrates the concepts −
When you work with many symbolic functions, you should declare that your variables are symbolic.
Create a script file and type the following code −
syms x %symbolic variable x
syms y %symbolic variable x
% expanding equations
expand((x-5)*(x+9))
expand((x+2)*(x-3)*(x-5)*(x+7))
expand(sin(2*x))
expand(cos(x+y))
% collecting equations
collect(x^3 *(x-7))
collect(x^4*(x-3)*(x-5))
When you run the file, it displays the following result −
ans =
x^2 + 4*x - 45
ans =
x^4 + x^3 - 43*x^2 + 23*x + 210
ans =
2*cos(x)*sin(x)
ans =
cos(x)*cos(y) - sin(x)*sin(y)
ans =
x^4 - 7*x^3
ans =
x^6 - 8*x^5 + 15*x^4
Expanding and Collecting Equations in Octave
You need to have symbolic package, which provides expand and the collect function to expand and collect an equation, respectively. The following example demonstrates the concepts −
When you work with many symbolic functions, you should declare that your variables are symbolic but Octave has different approach to define symbolic variables. Notice the use of Sin and Cos, which are also defined in symbolic package.
Create a script file and type the following code −
% first of all load the package, make sure its installed.
pkg load symbolic
% make symbols module available
symbols
% define symbolic variables
x = sym ('x');
y = sym ('y');
z = sym ('z');
% expanding equations
expand((x-5)*(x+9))
expand((x+2)*(x-3)*(x-5)*(x+7))
expand(Sin(2*x))
expand(Cos(x+y))
% collecting equations
collect(x^3 *(x-7), z)
collect(x^4*(x-3)*(x-5), z)
When you run the file, it displays the following result −
ans =
-45.0+x^2+(4.0)*x
ans =
210.0+x^4-(43.0)*x^2+x^3+(23.0)*x
ans =
sin((2.0)*x)
ans =
cos(y+x)
ans =
x^(3.0)*(-7.0+x)
ans =
(-3.0+x)*x^(4.0)*(-5.0+x)
Factorization and Simplification of Algebraic Expressions
The factor function factorizes an expression and the simplify function simplifies an expression. The following example demonstrates the concept −
Example
Create a script file and type the following code −
syms x
syms y
factor(x^3 - y^3)
factor([x^2-y^2,x^3+y^3])
simplify((x^4-16)/(x^2-4))
When you run the file, it displays the following result −
ans =
(x - y)*(x^2 + x*y + y^2)
ans =
[ (x - y)*(x + y), (x + y)*(x^2 - x*y + y^2)]
ans =
x^2 + 4
MATLAB provides various ways for solving problems of differential and integral calculus, solving differential equations of any degree and calculation of limits. Best of all, you can easily plot the graphs of complex functions and check maxima, minima and other stationery points on a graph by solving the original function, as well as its derivative.
This chapter will deal with problems of calculus. In this chapter, we will discuss pre-calculus concepts i.e., calculating limits of functions and verifying the properties of limits.
In the next chapter Differential, we will compute derivative of an expression and find the local maxima and minima on a graph. We will also discuss solving differential equations.
Finally, in the Integration chapter, we will discuss integral calculus.
Calculating Limits
MATLAB provides the limit function for calculating limits. In its most basic form, the limit function takes expression as an argument and finds the limit of the expression as the independent variable goes to zero.
For example, let us calculate the limit of a function f(x) = (x3 + 5)/(x4 + 7), as x tends to zero.
syms x
limit((x^3 + 5)/(x^4 + 7))
MATLAB will execute the above statement and return the following result −
ans =
5/7
The limit function falls in the realm of symbolic computing; you need to use the syms function to tell MATLAB which symbolic variables you are using. You can also compute limit of a function, as the variable tends to some number other than zero. To calculate lim x->a(f(x)), we use the limit command with arguments. The first being the expression and the second is the number, that x approaches, here it is a.
For example, let us calculate limit of a function f(x) = (x-3)/(x-1), as x tends to 1.
limit((x - 3)/(x-1),1)
MATLAB will execute the above statement and return the following result −
ans =
NaN
Let's take another example,
limit(x^2 + 5, 3)
MATLAB will execute the above statement and return the following result −
ans =
14
Calculating Limits using Octave
Following is Octave version of the above example using symbolic package, try to execute and compare the result −
pkg load symbolic
symbols
x = sym("x");
subs((x^3+5)/(x^4+7),x,0)
Octave will execute the above statement and return the following result −
ans =
0.7142857142857142857
Verification of Basic Properties of Limits
Algebraic Limit Theorem provides some basic properties of limits. These are as follows −
Let us consider two functions −
- f(x) = (3x + 5)/(x - 3)
- g(x) = x2 + 1.
Let us calculate the limits of the functions as x tends to 5, of both functions and verify the basic properties of limits using these two functions and MATLAB.
Example
Create a script file and type the following code into it −
syms x
f = (3*x + 5)/(x-3);
g = x^2 + 1;
l1 = limit(f, 4)
l2 = limit (g, 4)
lAdd = limit(f + g, 4)
lSub = limit(f - g, 4)
lMult = limit(f*g, 4)
lDiv = limit (f/g, 4)
When you run the file, it displays −
l1 =
17
l2 =
17
lAdd =
34
lSub =
0
lMult =
289
lDiv =
1
Verification of Basic Properties of Limits using Octave
Following is Octave version of the above example using symbolic package, try to execute and compare the result −
pkg load symbolic
symbols
x = sym("x");
f = (3*x + 5)/(x-3);
g = x^2 + 1;
l1 = subs(f, x, 4)
l2 = subs (g, x, 4)
lAdd = subs (f+g, x, 4)
lSub = subs (f-g, x, 4)
lMult = subs (f*g, x, 4)
lDiv = subs (f/g, x, 4)
Octave will execute the above statement and return the following result −
l1 =
17.0
l2 =
17.0
lAdd =
34.0
lSub =
0.0
lMult =
289.0
lDiv =
1.0
Left and Right Sided Limits
When a function has a discontinuity for some particular value of the variable, the limit does not exist at that point. In other words, limits of a function f(x) has discontinuity at x = a, when the value of limit, as x approaches x from left side, does not equal the value of the limit as x approaches from right side.
This leads to the concept of left-handed and right-handed limits. A left-handed limit is defined as the limit as x -> a, from the left, i.e., x approaches a, for values of x < a. A right-handed limit is defined as the limit as x -> a, from the right, i.e., x approaches a, for values of x > a. When the left-handed limit and right-handed limit are not equal, the limit does not exist.
Let us consider a function −
f(x) = (x - 3)/|x - 3|
We will show that limx->3 f(x) does not exist. MATLAB helps us to establish this fact in two ways −
- By plotting the graph of the function and showing the discontinuity.
- By computing the limits and showing that both are different.
The left-handed and right-handed limits are computed by passing the character strings 'left' and 'right' to the limit command as the last argument.
Example
Create a script file and type the following code into it −
f = (x - 3)/abs(x-3);
ezplot(f,[-1,5])
l = limit(f,x,3,'left')
r = limit(f,x,3,'right')
When you run the file, MATLAB draws the following plot
After this following output is displayed −
l =
-1
r =
1
MATLAB provides the diff command for computing symbolic derivatives. In its simplest form, you pass the function you want to differentiate to diff command as an argument.
For example, let us compute the derivative of the function f(t) = 3t2 + 2t-2
Example
Create a script file and type the following code into it −
syms t
f = 3*t^2 + 2*t^(-2);
diff(f)
When the above code is compiled and executed, it produces the following result −
ans =
6*t - 4/t^3
Following is Octave equivalent of the above calculation −
pkg load symbolic
symbols
t = sym("t");
f = 3*t^2 + 2*t^(-2);
differentiate(f,t)
Octave executes the code and returns the following result −
ans =
-(4.0)*t^(-3.0)+(6.0)*t
Verification of Elementary Rules of Differentiation
Let us briefly state various equations or rules for differentiation of functions and verify these rules. For this purpose, we will write f'(x) for a first order derivative and f"(x) for a second order derivative.
Following are the rules for differentiation −
Rule 1
For any functions f and g and any real numbers a and b are the derivative of the function −
h(x) = af(x) + bg(x) with respect to x is given by −
h'(x) = af'(x) + bg'(x)
Rule 2
The sum and subtraction rules state that if f and g are two functions, f' and g' are their derivatives respectively, then,
(f + g)' = f' + g'
(f - g)' = f' - g'
Rule 3
The product rule states that if f and g are two functions, f' and g' are their derivatives respectively, then,
(f.g)' = f'.g + g'.f
Rule 4
The quotient rule states that if f and g are two functions, f' and g' are their derivatives respectively, then,
(f/g)' = (f'.g - g'.f)/g2
Rule 5
The polynomial or elementary power rule states that, if y = f(x) = xn, then f' = n. x(n-1)
A direct outcome of this rule is that the derivative of any constant is zero, i.e., if y = k, any constant, then
f' = 0
Rule 6
The chain rule states that, derivative of the function of a function h(x) = f(g(x)) with respect to x is,
h'(x)= f'(g(x)).g'(x)
Example
Create a script file and type the following code into it −
syms x
syms t
f = (x + 2)*(x^2 + 3)
der1 = diff(f)
f = (t^2 + 3)*(sqrt(t) + t^3)
der2 = diff(f)
f = (x^2 - 2*x + 1)*(3*x^3 - 5*x^2 + 2)
der3 = diff(f)
f = (2*x^2 + 3*x)/(x^3 + 1)
der4 = diff(f)
f = (x^2 + 1)^17
der5 = diff(f)
f = (t^3 + 3* t^2 + 5*t -9)^(-6)
der6 = diff(f)
When you run the file, MATLAB displays the following result −
f =
(x^2 + 3)*(x + 2)
der1 =
2*x*(x + 2) + x^2 + 3
f =
(t^(1/2) + t^3)*(t^2 + 3)
der2 =
(t^2 + 3)*(3*t^2 + 1/(2*t^(1/2))) + 2*t*(t^(1/2) + t^3)
f =
(x^2 - 2*x + 1)*(3*x^3 - 5*x^2 + 2)
der3 =
(2*x - 2)*(3*x^3 - 5*x^2 + 2) - (- 9*x^2 + 10*x)*(x^2 - 2*x + 1)
f =
(2*x^2 + 3*x)/(x^3 + 1)
der4 =
(4*x + 3)/(x^3 + 1) - (3*x^2*(2*x^2 + 3*x))/(x^3 + 1)^2
f =
(x^2 + 1)^17
der5 =
34*x*(x^2 + 1)^16
f =
1/(t^3 + 3*t^2 + 5*t - 9)^6
der6 =
-(6*(3*t^2 + 6*t + 5))/(t^3 + 3*t^2 + 5*t - 9)^7
Following is Octave equivalent of the above calculation −
pkg load symbolic
symbols
x = sym("x");
t = sym("t");
f = (x + 2)*(x^2 + 3)
der1 = differentiate(f,x)
f = (t^2 + 3)*(t^(1/2) + t^3)
der2 = differentiate(f,t)
f = (x^2 - 2*x + 1)*(3*x^3 - 5*x^2 + 2)
der3 = differentiate(f,x)
f = (2*x^2 + 3*x)/(x^3 + 1)
der4 = differentiate(f,x)
f = (x^2 + 1)^17
der5 = differentiate(f,x)
f = (t^3 + 3* t^2 + 5*t -9)^(-6)
der6 = differentiate(f,t)
Octave executes the code and returns the following result −
f =
(2.0+x)*(3.0+x^(2.0))
der1 =
3.0+x^(2.0)+(2.0)*(2.0+x)*x
f =
(t^(3.0)+sqrt(t))*(3.0+t^(2.0))
der2 =
(2.0)*(t^(3.0)+sqrt(t))*t+((3.0)*t^(2.0)+(0.5)*t^(-0.5))*(3.0+t^(2.0))
f =
(1.0+x^(2.0)-(2.0)*x)*(2.0-(5.0)*x^(2.0)+(3.0)*x^(3.0))
der3 =
(-2.0+(2.0)*x)*(2.0-(5.0)*x^(2.0)+(3.0)*x^(3.0))+((9.0)*x^(2.0)-(10.0)*x)*(1.0+x^(2.0)-(2.0)*x)
f =
(1.0+x^(3.0))^(-1)*((2.0)*x^(2.0)+(3.0)*x)
der4 =
(1.0+x^(3.0))^(-1)*(3.0+(4.0)*x)-(3.0)*(1.0+x^(3.0))^(-2)*x^(2.0)*((2.0)*x^(2.0)+(3.0)*x)
f =
(1.0+x^(2.0))^(17.0)
der5 =
(34.0)*(1.0+x^(2.0))^(16.0)*x
f =
(-9.0+(3.0)*t^(2.0)+t^(3.0)+(5.0)*t)^(-6.0)
der6 =
-(6.0)*(-9.0+(3.0)*t^(2.0)+t^(3.0)+(5.0)*t)^(-7.0)*(5.0+(3.0)*t^(2.0)+(6.0)*t)
Derivatives of Exponential, Logarithmic and Trigonometric Functions
The following table provides the derivatives of commonly used exponential, logarithmic and trigonometric functions −
Function | Derivative |
---|---|
ca.x | ca.x.ln c.a (ln is natural logarithm) |
ex | ex |
ln x | 1/x |
lncx | 1/x.ln c |
xx | xx.(1 + ln x) |
sin(x) | cos(x) |
cos(x) | -sin(x) |
tan(x) | sec2(x), or 1/cos2(x), or 1 + tan2(x) |
cot(x) | -csc2(x), or -1/sin2(x), or -(1 + cot2(x)) |
sec(x) | sec(x).tan(x) |
csc(x) | -csc(x).cot(x) |
Example
Create a script file and type the following code into it −
syms x
y = exp(x)
diff(y)
y = x^9
diff(y)
y = sin(x)
diff(y)
y = tan(x)
diff(y)
y = cos(x)
diff(y)
y = log(x)
diff(y)
y = log10(x)
diff(y)
y = sin(x)^2
diff(y)
y = cos(3*x^2 + 2*x + 1)
diff(y)
y = exp(x)/sin(x)
diff(y)
When you run the file, MATLAB displays the following result −
y =
exp(x)
ans =
exp(x)
y =
x^9
ans =
9*x^8
y =
sin(x)
ans =
cos(x)
y =
tan(x)
ans =
tan(x)^2 + 1
y =
cos(x)
ans =
-sin(x)
y =
log(x)
ans =
1/x
y =
log(x)/log(10)
ans =
1/(x*log(10))
y =
sin(x)^2
ans =
2*cos(x)*sin(x)
y =
cos(3*x^2 + 2*x + 1)
ans =
-sin(3*x^2 + 2*x + 1)*(6*x + 2)
y =
exp(x)/sin(x)
ans =
exp(x)/sin(x) - (exp(x)*cos(x))/sin(x)^2
Following is Octave equivalent of the above calculation −
pkg load symbolic
symbols
x = sym("x");
y = Exp(x)
differentiate(y,x)
y = x^9
differentiate(y,x)
y = Sin(x)
differentiate(y,x)
y = Tan(x)
differentiate(y,x)
y = Cos(x)
differentiate(y,x)
y = Log(x)
differentiate(y,x)
% symbolic packages does not have this support
%y = Log10(x)
%differentiate(y,x)
y = Sin(x)^2
differentiate(y,x)
y = Cos(3*x^2 + 2*x + 1)
differentiate(y,x)
y = Exp(x)/Sin(x)
differentiate(y,x)
Octave executes the code and returns the following result −
y =
exp(x)
ans =
exp(x)
y =
x^(9.0)
ans =
(9.0)*x^(8.0)
y =
sin(x)
ans =
cos(x)
y =
tan(x)
ans =
1+tan(x)^2
y =
cos(x)
ans =
-sin(x)
y =
log(x)
ans =
x^(-1)
y =
sin(x)^(2.0)
ans =
(2.0)*sin(x)*cos(x)
y =
cos(1.0+(2.0)*x+(3.0)*x^(2.0))
ans =
-(2.0+(6.0)*x)*sin(1.0+(2.0)*x+(3.0)*x^(2.0))
y =
sin(x)^(-1)*exp(x)
ans =
sin(x)^(-1)*exp(x)-sin(x)^(-2)*cos(x)*exp(x)
Computing Higher Order Derivatives
To compute higher derivatives of a function f, we use the syntax diff(f,n).
Let us compute the second derivative of the function y = f(x) = x .e-3x
f = x*exp(-3*x);
diff(f, 2)
MATLAB executes the code and returns the following result −
ans =
9*x*exp(-3*x) - 6*exp(-3*x)
Following is Octave equivalent of the above calculation −
pkg load symbolic
symbols
x = sym("x");
f = x*Exp(-3*x);
differentiate(f, x, 2)
Octave executes the code and returns the following result −
ans =
(9.0)*exp(-(3.0)*x)*x-(6.0)*exp(-(3.0)*x)
Example
In this example, let us solve a problem. Given that a function y = f(x) = 3 sin(x) + 7 cos(5x). We will have to find out whether the equation f" + f = -5cos(2x) holds true.
Create a script file and type the following code into it −
syms x
y = 3*sin(x)+7*cos(5*x); % defining the function
lhs = diff(y,2)+y; %evaluting the lhs of the equation
rhs = -5*cos(2*x); %rhs of the equation
if(isequal(lhs,rhs))
disp('Yes, the equation holds true');
else
disp('No, the equation does not hold true');
end
disp('Value of LHS is: '), disp(lhs);
When you run the file, it displays the following result −
No, the equation does not hold true
Value of LHS is:
-168*cos(5*x)
Following is Octave equivalent of the above calculation −
pkg load symbolic
symbols
x = sym("x");
y = 3*Sin(x)+7*Cos(5*x); % defining the function
lhs = differentiate(y, x, 2) + y; %evaluting the lhs of the equation
rhs = -5*Cos(2*x); %rhs of the equation
if(lhs == rhs)
disp('Yes, the equation holds true');
else
disp('No, the equation does not hold true');
end
disp('Value of LHS is: '), disp(lhs);
Octave, kodu yürütür ve aşağıdaki sonucu döndürür -
No, the equation does not hold true
Value of LHS is:
-(168.0)*cos((5.0)*x)
Bir Eğrinin Maksimum ve Minimumlarını Bulmak
Bir grafik için yerel maksimum ve minimumları arıyorsak, temelde belirli bir konumdaki fonksiyonun grafiğindeki en yüksek veya en düşük noktaları veya sembolik değişkenin belirli bir değer aralığını arıyoruz.
Y = f (x) fonksiyonu için, grafiğin sıfır eğime sahip olduğu noktalar stationary points. Başka bir deyişle, sabit noktalar f '(x) = 0'dır.
Farklılaştırdığımız bir fonksiyonun durağan noktalarını bulmak için türevi sıfıra eşitlememiz ve denklemi çözmemiz gerekir.
Misal
F (x) = 2x 3 + 3x 2 - 12x + 17 fonksiyonunun durağan noktalarını bulalım
Aşağıdaki adımları uygulayın -
First let us enter the function and plot its graph.
syms x
y = 2*x^3 + 3*x^2 - 12*x + 17; % defining the function
ezplot(y)
MATLAB kodu çalıştırır ve aşağıdaki grafiği döndürür -
İşte yukarıdaki örnek için Octave eşdeğer kodu -
pkg load symbolic
symbols
x = sym('x');
y = inline("2*x^3 + 3*x^2 - 12*x + 17");
ezplot(y)
print -deps graph.eps
Our aim is to find some local maxima and minima on the graph, so let us find the local maxima and minima for the interval [-2, 2] on the graph.
syms x
y = 2*x^3 + 3*x^2 - 12*x + 17; % defining the function
ezplot(y, [-2, 2])
MATLAB kodu çalıştırır ve aşağıdaki grafiği döndürür -
İşte yukarıdaki örnek için Octave eşdeğer kodu -
pkg load symbolic
symbols
x = sym('x');
y = inline("2*x^3 + 3*x^2 - 12*x + 17");
ezplot(y, [-2, 2])
print -deps graph.eps
Next, let us compute the derivative.
g = diff(y)
MATLAB kodu yürütür ve aşağıdaki sonucu döndürür -
g =
6*x^2 + 6*x - 12
İşte yukarıdaki hesaplamanın Oktav eşdeğeri -
pkg load symbolic
symbols
x = sym("x");
y = 2*x^3 + 3*x^2 - 12*x + 17;
g = differentiate(y,x)
Octave, kodu yürütür ve aşağıdaki sonucu döndürür -
g =
-12.0+(6.0)*x+(6.0)*x^(2.0)
Let us solve the derivative function, g, to get the values where it becomes zero.
s = solve(g)
MATLAB kodu yürütür ve aşağıdaki sonucu döndürür -
s =
1
-2
Aşağıda, yukarıdaki hesaplamanın Oktav eşdeğeri -
pkg load symbolic
symbols
x = sym("x");
y = 2*x^3 + 3*x^2 - 12*x + 17;
g = differentiate(y,x)
roots([6, 6, -12])
Octave, kodu yürütür ve aşağıdaki sonucu döndürür -
g =
-12.0+(6.0)*x^(2.0)+(6.0)*x
ans =
-2
1
This agrees with our plot. So let us evaluate the function f at the critical points x = 1, -2. Sembolik bir işlevdeki bir değeri, subs komut.
subs(y, 1), subs(y, -2)
MATLAB kodu yürütür ve aşağıdaki sonucu döndürür -
ans =
10
ans =
37
Aşağıda, yukarıdaki hesaplamanın Oktav eşdeğeri -
pkg load symbolic
symbols
x = sym("x");
y = 2*x^3 + 3*x^2 - 12*x + 17;
g = differentiate(y,x)
roots([6, 6, -12])
subs(y, x, 1), subs(y, x, -2)
ans =
10.0
ans =
37.0-4.6734207789940138748E-18*I
Bu nedenle, f (x) = 2x 3 + 3x 2 - 12x + 17 fonksiyonunun [-2,2] aralığında minimum ve maksimum değerleri 10 ve 37'dir.
Diferansiyel Denklemleri Çözme
MATLAB, dsolve diferansiyel denklemleri sembolik olarak çözmek için komut.
En temel formu dsolve tek bir denklemin çözümünü bulma komutu
dsolve('eqn')
nerede eqn denklemi girmek için kullanılan bir metin dizesidir.
MATLAB'ın C1, C2, vb. Olarak etiketlediği bir dizi rastgele sabitle sembolik bir çözüm döndürür.
Aşağıdaki denklemi takip eden virgülle ayrılmış liste olarak, problem için başlangıç ve sınır koşullarını da belirtebilirsiniz:
dsolve('eqn','cond1', 'cond2',…)
Dsolve komutunun kullanılması amacıyla, derivatives are indicated with a D. Örneğin, f '(t) = -2 * f + maliyet (t) gibi bir denklem - olarak girilir
'Df = -2*f + cos(t)'
Daha yüksek türevler, türevin sırasına göre D'yi takip ederek gösterilir.
Örneğin f "(x) + 2f '(x) = 5sin3x denklemi - olarak girilmelidir
'D2y + 2Dy = 5*sin(3*x)'
Birinci dereceden diferansiyel denklemin basit bir örneğini ele alalım: y '= 5y.
s = dsolve('Dy = 5*y')
MATLAB kodu yürütür ve aşağıdaki sonucu döndürür -
s =
C2*exp(5*t)
İkinci dereceden diferansiyel denklemin başka bir örneğini şu şekilde ele alalım: y "- y = 0, y (0) = -1, y '(0) = 2.
dsolve('D2y - y = 0','y(0) = -1','Dy(0) = 2')
MATLAB kodu yürütür ve aşağıdaki sonucu döndürür -
ans =
exp(t)/2 - (3*exp(-t))/2
Entegrasyon, temelde farklı iki problem türü ile ilgilenir.
İlk türde bir fonksiyonun türevi verilir ve fonksiyonu bulmak istiyoruz. Bu nedenle, temelde farklılaşma sürecini tersine çeviriyoruz. Bu ters işlem, farklılaşma önleme veya ilkel işlevi bulma veya birindefinite integral.
İkinci tür problemler, çok büyük sayıda çok küçük miktarları toplamayı ve daha sonra niceliklerin boyutu sıfıra yaklaştıkça bir sınır almayı içerirken, terimlerin sayısı sonsuza meyillidir. Bu süreç,definite integral.
Belirli integraller alanı, hacmi, ağırlık merkezini, eylemsizlik momentini, bir kuvvet tarafından yapılan işi bulmak ve diğer birçok uygulamada kullanılır.
MATLAB Kullanarak Belirsiz İntegrali Bulmak
Tanım olarak, bir f (x) fonksiyonunun türevi f '(x) ise, o zaman f' (x) 'in x'e göre belirsiz integralinin f (x) olduğunu söyleriz. Örneğin, x 2'nin türevi (x'e göre) 2x olduğu için, 2x'in belirsiz integralinin x 2 olduğunu söyleyebiliriz .
Sembollerde -
f'(x2) = 2x, bu nedenle,
∫ 2xdx = x2.
Belirsiz integral benzersiz değildir, çünkü x 2 + c'nin türevi, c sabitinin herhangi bir değeri için 2x olacaktır.
Bu şu sembollerle ifade edilir -
∫ 2xdx = x2 + c.
Burada c, 'keyfi sabit' olarak adlandırılır.
MATLAB, intbir ifadenin integralini hesaplamak için komut. Bir fonksiyonun belirsiz integrali için bir ifade türetmek için şunu yazıyoruz -
int(f);
Örneğin, önceki örneğimizden -
syms x
int(2*x)
MATLAB yukarıdaki ifadeyi yürütür ve aşağıdaki sonucu döndürür -
ans =
x^2
örnek 1
Bu örnekte, yaygın olarak kullanılan bazı ifadelerin integralini bulalım. Bir komut dosyası oluşturun ve içine aşağıdaki kodu yazın -
syms x n
int(sym(x^n))
f = 'sin(n*t)'
int(sym(f))
syms a t
int(a*cos(pi*t))
int(a^x)
Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -
ans =
piecewise([n == -1, log(x)], [n ~= -1, x^(n + 1)/(n + 1)])
f =
sin(n*t)
ans =
-cos(n*t)/n
ans =
(a*sin(pi*t))/pi
ans =
a^x/log(a)
Örnek 2
Bir komut dosyası oluşturun ve içine aşağıdaki kodu yazın -
syms x n
int(cos(x))
int(exp(x))
int(log(x))
int(x^-1)
int(x^5*cos(5*x))
pretty(int(x^5*cos(5*x)))
int(x^-5)
int(sec(x)^2)
pretty(int(1 - 10*x + 9 * x^2))
int((3 + 5*x -6*x^2 - 7*x^3)/2*x^2)
pretty(int((3 + 5*x -6*x^2 - 7*x^3)/2*x^2))
Unutmayın ki pretty işlev, daha okunaklı bir biçimde bir ifade döndürür.
Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -
ans =
sin(x)
ans =
exp(x)
ans =
x*(log(x) - 1)
ans =
log(x)
ans =
(24*cos(5*x))/3125 + (24*x*sin(5*x))/625 - (12*x^2*cos(5*x))/125 + (x^4*cos(5*x))/5 - (4*x^3*sin(5*x))/25 + (x^5*sin(5*x))/5
2 4
24 cos(5 x) 24 x sin(5 x) 12 x cos(5 x) x cos(5 x)
----------- + ------------- - -------------- + ------------
3125 625 125 5
3 5
4 x sin(5 x) x sin(5 x)
------------- + -----------
25 5
ans =
-1/(4*x^4)
ans =
tan(x)
2
x (3 x - 5 x + 1)
ans =
- (7*x^6)/12 - (3*x^5)/5 + (5*x^4)/8 + x^3/2
6 5 4 3
7 x 3 x 5 x x
- ---- - ---- + ---- + --
12 5 8 2
MATLAB Kullanarak Kesin İntegrali Bulmak
Tanım olarak, belirli integral temelde bir toplamın sınırıdır. Bir eğri ile x ekseni arasındaki alan ve iki eğri arasındaki alan gibi alanları bulmak için belirli integralleri kullanırız. Belirli integraller, gerekli miktarın bir toplamın sınırı olarak ifade edilebildiği diğer durumlarda da kullanılabilir.
int fonksiyonu, integrali hesaplamak istediğiniz limitleri aşarak kesin entegrasyon için kullanılabilir.
Hesaplamak
Biz yazarız,
int(x, a, b)
Örneğin,
int(x, 4, 9)
MATLAB yukarıdaki ifadeyi yürütür ve aşağıdaki sonucu döndürür -
ans =
65/2
Aşağıda, yukarıdaki hesaplamanın Oktav eşdeğeri -
pkg load symbolic
symbols
x = sym("x");
f = x;
c = [1, 0];
integral = polyint(c);
a = polyval(integral, 9) - polyval(integral, 4);
display('Area: '), disp(double(a));
Octave, kodu yürütür ve aşağıdaki sonucu döndürür -
Area:
32.500
Octave tarafından sağlanan quad () işlevi kullanılarak aşağıdaki gibi alternatif bir çözüm verilebilir -
pkg load symbolic
symbols
f = inline("x");
[a, ierror, nfneval] = quad(f, 4, 9);
display('Area: '), disp(double(a));
Octave, kodu yürütür ve aşağıdaki sonucu döndürür -
Area:
32.500
örnek 1
X ekseni ile y = x 3 −2x + 5 eğrisi ve x = 1 ve x = 2 koordinatları arasında kalan alanı hesaplayalım .
Gerekli alan verilir -
Bir komut dosyası oluşturun ve aşağıdaki kodu yazın -
f = x^3 - 2*x +5;
a = int(f, 1, 2)
display('Area: '), disp(double(a));
Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -
a =
23/4
Area:
5.7500
Aşağıda, yukarıdaki hesaplamanın Oktav eşdeğeri -
pkg load symbolic
symbols
x = sym("x");
f = x^3 - 2*x +5;
c = [1, 0, -2, 5];
integral = polyint(c);
a = polyval(integral, 2) - polyval(integral, 1);
display('Area: '), disp(double(a));
Octave, kodu yürütür ve aşağıdaki sonucu döndürür -
Area:
5.7500
Octave tarafından sağlanan quad () işlevi kullanılarak aşağıdaki gibi alternatif bir çözüm verilebilir -
pkg load symbolic
symbols
x = sym("x");
f = inline("x^3 - 2*x +5");
[a, ierror, nfneval] = quad(f, 1, 2);
display('Area: '), disp(double(a));
Octave, kodu yürütür ve aşağıdaki sonucu döndürür -
Area:
5.7500
Örnek 2
Eğrinin altındaki alanı bulun: −4 ≤ x ≤ 9 için f (x) = x 2 cos (x).
Bir komut dosyası oluşturun ve aşağıdaki kodu yazın -
f = x^2*cos(x);
ezplot(f, [-4,9])
a = int(f, -4, 9)
disp('Area: '), disp(double(a));
Dosyayı çalıştırdığınızda, MATLAB grafiği çizer -
Çıktı aşağıda verilmiştir -
a =
8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9)
Area:
0.3326
Aşağıda, yukarıdaki hesaplamanın Oktav eşdeğeri -
pkg load symbolic
symbols
x = sym("x");
f = inline("x^2*cos(x)");
ezplot(f, [-4,9])
print -deps graph.eps
[a, ierror, nfneval] = quad(f, -4, 9);
display('Area: '), disp(double(a));
MATLAB, polinomları, azalan üslere göre sıralanmış katsayıları içeren satır vektörleri olarak temsil eder. Örneğin, P (x) = x 4 + 7x 3 - 5x + 9 denklemi - olarak gösterilebilir
p = [1 7 0 -5 9];
Polinomların Değerlendirilmesi
polyvalfonksiyonu, bir polinomu belirli bir değerde değerlendirmek için kullanılır. Örneğin, önceki polinomumuzu değerlendirmek içinp, x = 4'te, yazın -
p = [1 7 0 -5 9];
polyval(p,4)
MATLAB yukarıdaki ifadeleri yürütür ve aşağıdaki sonucu verir -
ans = 693
MATLAB ayrıca polyvalmmatris polinomunu değerlendirme işlevi. Bir matris polinomu birpolynomial değişken olarak matrisler ile.
Örneğin, bir kare matris X oluşturalım ve polinom p'yi X'te değerlendirelim -
p = [1 7 0 -5 9];
X = [1 2 -3 4; 2 -5 6 3; 3 1 0 2; 5 -7 3 8];
polyvalm(p, X)
MATLAB yukarıdaki ifadeleri yürütür ve aşağıdaki sonucu verir -
ans =
2307 -1769 -939 4499
2314 -2376 -249 4695
2256 -1892 -549 4310
4570 -4532 -1062 9269
Polinomların Köklerini Bulmak
rootsfonksiyonu bir polinomun köklerini hesaplar. Örneğin, polinom p'nin köklerini hesaplamak için, yazın -
p = [1 7 0 -5 9];
r = roots(p)
MATLAB yukarıdaki ifadeleri yürütür ve aşağıdaki sonucu verir -
r =
-6.8661 + 0.0000i
-1.4247 + 0.0000i
0.6454 + 0.7095i
0.6454 - 0.7095i
İşlev polykök fonksiyonunun tersidir ve polinom katsayılarına geri döner. Örneğin -
p2 = poly(r)
MATLAB yukarıdaki ifadeleri yürütür ve aşağıdaki sonucu verir -
p2 =
Columns 1 through 3:
1.00000 + 0.00000i 7.00000 + 0.00000i 0.00000 + 0.00000i
Columns 4 and 5:
-5.00000 - 0.00000i 9.00000 + 0.00000i
Polinom Eğri Uydurma
polyfitişlevi, en küçük kareler anlamında bir veri kümesine uyan bir polinomun katsayılarını bulur. X ve y, n dereceli bir polinoma uydurulacak x ve y verilerini içeren iki vektörse, veriyi uyduran polinomu yazarak elde ederiz -
p = polyfit(x,y,n)
Misal
Bir komut dosyası oluşturun ve aşağıdaki kodu yazın -
x = [1 2 3 4 5 6]; y = [5.5 43.1 128 290.7 498.4 978.67]; %data
p = polyfit(x,y,4) %get the polynomial
% Compute the values of the polyfit estimate over a finer range,
% and plot the estimate over the real data values for comparison:
x2 = 1:.1:6;
y2 = polyval(p,x2);
plot(x,y,'o',x2,y2)
grid on
Dosyayı çalıştırdığınızda, MATLAB aşağıdaki sonucu görüntüler -
p =
4.1056 -47.9607 222.2598 -362.7453 191.1250
Ve aşağıdaki grafiği çizer -
MATLAB, Laplace ve Fourier dönüşümleri gibi dönüşümlerle çalışmak için komut sağlar. Dönüşümler bilimde ve mühendislikte analizi basitleştirmek ve verilere başka bir açıdan bakmak için bir araç olarak kullanılır.
Örneğin, Fourier dönüşümü, zamanın bir fonksiyonu olarak temsil edilen bir sinyali bir frekans fonksiyonuna dönüştürmemize izin verir. Laplace dönüşümü, bir diferansiyel denklemi cebirsel bir denkleme dönüştürmemizi sağlar.
MATLAB, laplace, fourier ve fft Laplace, Fourier ve Hızlı Fourier dönüşümleriyle çalışmak için komutlar.
Laplace Dönüşümü
Zaman f (t) fonksiyonunun Laplace dönüşümü aşağıdaki integral ile verilir -
Laplace dönüşümü ayrıca f (t) 'nin F (s)' ye dönüşümü olarak belirtilir. Bu dönüşüm veya entegrasyon sürecinin, sembolik değişken t'nin bir fonksiyonu olan f (t) 'yi başka bir değişken s ile başka bir F (s) fonksiyonuna dönüştürdüğünü görebilirsiniz.
Laplace dönüşümü diferansiyel denklemleri cebirsel olanlara dönüştürür. Bir f (t) fonksiyonunun Laplace dönüşümünü hesaplamak için şunu yazın -
laplace(f(t))
Misal
Bu örnekte, yaygın olarak kullanılan bazı fonksiyonların Laplace dönüşümünü hesaplayacağız.
Bir komut dosyası oluşturun ve aşağıdaki kodu yazın -
syms s t a b w
laplace(a)
laplace(t^2)
laplace(t^9)
laplace(exp(-b*t))
laplace(sin(w*t))
laplace(cos(w*t))
Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -
ans =
1/s^2
ans =
2/s^3
ans =
362880/s^10
ans =
1/(b + s)
ans =
w/(s^2 + w^2)
ans =
s/(s^2 + w^2)
Ters Laplace Dönüşümü
MATLAB, komutu kullanarak ters Laplace dönüşümünü hesaplamamıza izin verir ilaplace.
Örneğin,
ilaplace(1/s^3)
MATLAB yukarıdaki ifadeyi çalıştıracak ve sonucu gösterecektir -
ans =
t^2/2
Misal
Bir komut dosyası oluşturun ve aşağıdaki kodu yazın -
syms s t a b w
ilaplace(1/s^7)
ilaplace(2/(w+s))
ilaplace(s/(s^2+4))
ilaplace(exp(-b*t))
ilaplace(w/(s^2 + w^2))
ilaplace(s/(s^2 + w^2))
Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -
ans =
t^6/720
ans =
2*exp(-t*w)
ans =
cos(2*t)
ans =
ilaplace(exp(-b*t), t, x)
ans =
sin(t*w)
ans =
cos(t*w)
Fourier Dönüşümleri
Fourier dönüşümü genellikle zamanın matematiksel bir fonksiyonunu (f (t)), argümanı döngü / s (hertz) veya radyan / saniye birimleriyle frekans olan, bazen veya F ile gösterilen yeni bir fonksiyona dönüştürür. Yeni fonksiyon daha sonra Fourier dönüşümü ve / veya f fonksiyonunun frekans spektrumu olarak bilinir.
Misal
Bir komut dosyası oluşturun ve içine aşağıdaki kodu yazın -
syms x
f = exp(-2*x^2); %our function
ezplot(f,[-2,2]) % plot of our function
FT = fourier(f) % Fourier transform
Dosyayı çalıştırdığınızda, MATLAB aşağıdaki grafiği çizer -
Aşağıdaki sonuç görüntülenir -
FT =
(2^(1/2)*pi^(1/2)*exp(-w^2/8))/2
Fourier dönüşümünü şöyle çizmek -
ezplot(FT)
Aşağıdaki grafiği verir -
Ters Fourier Dönüşümleri
MATLAB, ifourierbir fonksiyonun ters Fourier dönüşümünü hesaplamak için komut. Örneğin,
f = ifourier(-2*exp(-abs(w)))
MATLAB yukarıdaki ifadeyi çalıştıracak ve sonucu gösterecektir -
f =
-2/(pi*(x^2 + 1))
GNU Octave, MATLAB gibi üst düzey bir programlama dilidir ve çoğunlukla MATLAB ile uyumludur. Ayrıca sayısal hesaplamalar için de kullanılır.
Octave, MATLAB ile aşağıdaki ortak özelliklere sahiptir -
- matrisler temel veri türüdür
- karmaşık sayılar için yerleşik desteğe sahiptir
- yerleşik matematik işlevleri ve kitaplıkları vardır
- kullanıcı tanımlı işlevleri destekler
GNU Octave ayrıca serbestçe yeniden dağıtılabilen bir yazılımdır. Özgür Yazılım Vakfı tarafından yayınlanan GNU Genel Kamu Lisansı (GPL) koşulları altında yeniden dağıtabilir ve / veya değiştirebilirsiniz.
MATLAB ve Octave
Çoğu MATLAB programı Octave'de çalışır, ancak bazı Octave programları MATLAB'da çalışmayabilir çünkü Octave, MATLAB'ın izin vermediği bazı sözdizimlerine izin verir.
Örneğin, MATLAB yalnızca tek tırnakları destekler, ancak Octave, dizeleri tanımlamak için hem tek hem de çift tırnakları destekler. Octave hakkında bir eğitim arıyorsanız, hem MATLAB hem de Octave'yi kapsayan bu öğreticiyi en baştan gözden geçirin.
Uyumlu Örnekler
Bu eğitimde kapsanan hemen hemen tüm örnekler MATLAB ve Octave ile uyumludur. Herhangi bir sözdizimi değişikliği olmadan aynı sonucu üreten MATLAB ve Octave'de aşağıdaki örneği deneyelim -
Bu örnek, g = xe - (x 2 + y 2 ) fonksiyonu için bir 3B yüzey haritası oluşturur . Bir komut dosyası oluşturun ve aşağıdaki kodu yazın -
[x,y] = meshgrid(-2:.2:2);
g = x .* exp(-x.^2 - y.^2);
surf(x, y, g)
print -deps graph.eps
Dosyayı çalıştırdığınızda, MATLAB aşağıdaki 3 boyutlu haritayı görüntüler -
Uyumlu olmayan Örnekler
MATLAB'ın tüm temel işlevleri Octave'de mevcut olsa da, her iki dilde de tam olarak eşleşmeyen Diferansiyel ve Entegrasyon Hesabı gibi bazı işlevler vardır. Bu eğitim, sözdizimlerinde farklılık gösteren her iki tür örneği de vermeye çalışmıştır.
MATLAB ve Octave'in bir eğrinin alanını elde etmek için farklı fonksiyonlardan yararlandığı aşağıdaki örneği düşünün: −4 ≤ x ≤ için f (x) = x 2 cos (x) 9. Kodun MATLAB versiyonu aşağıdadır -
f = x^2*cos(x);
ezplot(f, [-4,9])
a = int(f, -4, 9)
disp('Area: '), disp(double(a));
Dosyayı çalıştırdığınızda, MATLAB grafiği çizer -
Aşağıdaki sonuç görüntülenir
a =
8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9)
Area:
0.3326
Fakat Octave'de aynı eğrinin alanını vermek için, şunlardan yararlanmanız gerekecek symbolic aşağıdaki gibi paket -
pkg load symbolic
symbols
x = sym("x");
f = inline("x^2*cos(x)");
ezplot(f, [-4,9])
print -deps graph.eps
[a, ierror, nfneval] = quad(f, -4, 9);
display('Area: '), disp(double(a));
Simulink, MATLAB ile entegre, dinamik ve gömülü sistemler için simülasyon ve model tabanlı bir tasarım ortamıdır. MathWorks tarafından da geliştirilen Simulink, çok alanlı dinamik sistemleri modellemek, simüle etmek ve analiz etmek için bir veri akışı grafik programlama dili aracıdır. Temel olarak, özelleştirilebilir blok kitaplıkları kümesine sahip bir grafik blok diyagram oluşturma aracıdır.
MATLAB algoritmalarını modellere dahil etmenize ve simülasyon sonuçlarını daha fazla analiz için MATLAB'a aktarmanıza olanak tanır.
Simulink destekleri -
- sistem düzeyinde tasarım
- simulation
- otomatik kod üretimi
- gömülü sistemlerin test edilmesi ve doğrulanması
MathWorks tarafından sağlanan birkaç başka eklenti ürünü ve Simulink ile kullanılabilen üçüncü taraf donanım ve yazılım ürünleri vardır.
Aşağıdaki liste, bunlardan bazılarının kısa bir açıklamasını verir -
Stateflow durum makineleri ve akış şemaları geliştirmeye izin verir.
Simulink Coder sistemlerin otomatik olarak gerçek zamanlı uygulanması için C kaynak kodunun üretilmesine izin verir.
xPC Target birlikte x86-based real-time systems Simulink ve Stateflow modellerini fiziksel sistemde gerçek zamanlı olarak simüle etmek ve test etmek için bir ortam sağlar.
Embedded Coder belirli gömülü hedefleri destekler.
HDL Coder sentezlenebilir VHDL ve Verilog'u otomatik olarak oluşturmaya izin verir.
SimEvents kuyruk sistemlerini modellemek için bir grafik yapı blokları kütüphanesi sağlar.
Simulink, modelleme stili kontrolü, gereksinim izlenebilirliği ve model kapsam analizi yoluyla modellerin sistematik olarak doğrulanması ve doğrulanması yeteneğine sahiptir.
Simulink Design Verifier, tasarım hatalarını belirlemenize ve model kontrolü için test senaryoları oluşturmanıza olanak tanır.
Simulink'i kullanma
Simulink'i açmak için MATLAB çalışma alanını yazın -
simulink
Simulink ile açılır Library Browser. Kütüphane Tarayıcısı simülasyon modelleri oluşturmak için kullanılır.
Sol taraftaki pencere bölmesinde, çeşitli sistemlere göre sınıflandırılmış birkaç kitaplık bulacaksınız, her birine tıkladığınızda tasarım blokları sağ pencere bölmesinde görüntülenecektir.
Yapı Modelleri
Yeni bir model oluşturmak için, NewKütüphane Tarayıcısı araç çubuğundaki düğmesine basın. Bu, yeni bir başlıksız model penceresi açar.
Simulink modeli bir blok diyagramdır.
Model öğeleri, Kütüphane Tarayıcısından uygun öğeler seçilerek ve Model penceresine sürüklenerek eklenir.
Alternatif olarak, model öğelerini kopyalayıp model penceresine yapıştırabilirsiniz.
Örnekler
Projenizi oluşturmak için Simulink kitaplığından öğeleri sürükleyip bırakın.
Bu örneğin amacı doğrultusunda, simülasyon için iki blok kullanılacaktır - A Source (bir sinyal) ve bir Sink(Bir dürbün). Bir sinyal oluşturucu (kaynak), daha sonra skop (havuz) tarafından grafiksel olarak görselleştirilecek olan bir analog sinyal üretir.
Kitaplıktan gerekli blokları proje penceresine sürükleyerek başlayın. Ardından, konektörleri bir bloktaki bağlantı noktalarından diğerine sürükleyerek yapılabilecek blokları birbirine bağlayın.
Modele bir 'Sinüs Dalgası' bloğu sürükleyelim.
Kitaplıktan 'Havuzlar'ı seçin ve bir' Kapsam 'bloğunu modele sürükleyin.
Sinüs Dalgası bloğunun çıkışından bir sinyal çizgisini Kapsam bloğunun girişine sürükleyin.
Simülasyonu 'düğmesine basarak çalıştırın.Run'düğmesi, tüm parametreleri varsayılan olarak korur (bunları Simülasyon menüsünden değiştirebilirsiniz)
Aşağıdaki grafiği kapsamdan almalısınız.