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,

yazdığımızın değerini hesaplamak iç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.