MATLAB
Dosya:MATLAB R2015b.png Windows 10'a kurulmuş MATLAB R2015b sürümü | |
Geliştirici(ler) | MathWorks |
---|---|
Güncel sürüm | R2020b / 17 Eylül 2020 | )
Programlama dili | C/C++, MATLAB |
İşletim sistemi | Windows, macOS ve Linux |
Platform | IA-32, x86-64 |
Tür | Teknik hesaplama |
Lisans | Sahipli yazılım/Ticari yazılım |
Resmî sitesi | MATLAB ana sayfa |
Paradigması | Çok paradigmalı: emirli, yordamsal, nesne yönelimli, sıralı, fonksiyonel |
---|---|
İlk çıkışı | 1970 sonları |
Tasarımcı | Cleve Moler |
Geliştirici | MathWorks |
Kararlı sürüm |
9.9 (R2020b) (17 Eylül 2020 )) |
Tip sistemi | Dinamik, zayıf |
Etkilendikleri |
|
Etkiledikleri |
|
Olağan dosya uzantıları | .m, .p, .mex*, .mat, .fig, .mlx, .mlapp, .mltbx, .mlappinstall, .mlpkginstall |
MATLAB (matrix laboratory), çok paradigmalı sayısal hesaplama yazılımı ve dördüncü nesil programlama dilidir. Sahipli bir programlama dili olan MATLAB, MathWorks tarafından geliştirilmektedir. MATLAB kullanıcıya, matris işleme, fonksiyon ve veri çizme, algoritma uygulama, kullanıcı arayüzü oluşturma, C, C++, Java, ve Fortran gibi diğer dillerde yazılmış programlarla arabağlama imkânı tanır. ⓘ
MATLAB, öncelikli olarak sayısal işleme yönelik üretilmiş olmasına rağmen, isteğe bağlı olarak sembolik hesaplama yapabilen MuPAD sembolik motorunu kullanır. Ek paket, dinamik ve gömülü sistemler için Simulink'i, grafiksel çoklu alan simülasyonunu ve model tabanlı tasarımı ekler. ⓘ
2004'te, MATLAB akademik ve endüstriyel alandaki kullanıcı sayısı bir milyon civarındaydı. MATLAB kullanıcıları mühendislik, bilim, ve ekonomi gibi çeşitli alanlardan gelmektedir. MATLAB, yaygın olarak akademik ve araştırma kurumlarında olduğu kadar endüstriyel işletmelerde de çok kullanılmaktadır. ⓘ
Tarihçe
Kökenleri
MATLAB, matematikçi ve bilgisayar programcısı Cleve Moler tarafından icat edilmiştir. MATLAB fikri 1960'lardaki doktora tezine dayanıyordu. Moler, New Mexico Üniversitesi'nde matematik profesörü oldu ve MATLAB'ı öğrencileri için hobi olarak geliştirmeye başladı. MATLAB'in ilk doğrusal cebir programlamasını 1967 yılında bir zamanlar tez danışmanı olan George Forsythe ile birlikte geliştirdi. Bunu 1971 yılında doğrusal denklemler için Fortran kodu takip etti. ⓘ
Başlangıçta (1.0 sürümünden önce) MATLAB "bir programlama dili değildi; basit bir etkileşimli matris hesaplayıcısıydı. Program yoktu, araç kutusu yoktu, grafik yoktu. Ve ODE'ler ya da FFT'ler de yoktu." ⓘ
MATLAB'in ilk erken versiyonu 1970'lerin sonunda tamamlandı. Yazılım ilk kez Şubat 1979'da Kaliforniya'daki Naval Postgraduate School'da halka açıklanmıştır. MATLAB'ın ilk sürümleri, önceden oluşturulmuş 71 fonksiyona sahip basit matris hesaplayıcılardı. O dönemde MATLAB üniversitelere ücretsiz olarak dağıtılıyordu. Moler ziyaret ettiği üniversitelere kopyalarını bırakıyordu ve yazılım üniversite kampüslerinin matematik bölümlerinde güçlü bir takipçi kitlesi geliştirdi. ⓘ
1980'lerde Cleve Moler, John N. Little ile tanıştı. MATLAB'ı C dilinde yeniden programlamaya ve o dönemde ana bilgisayarların yerini alan IBM masaüstü bilgisayarları için pazarlamaya karar verdiler. John Little ve programcı Steve Bangert MATLAB'ı C dilinde yeniden programladı, MATLAB programlama dilini yarattı ve araç kutuları için özellikler geliştirdi. ⓘ
MATLAB, ilk olarak kontrol mühendisliğindeki araştırmacılar ve uygulayıcılar tarafından kabul edildi. Ayrıca şu an eğitim alanında da kullanılmaktadır, özellikle doğrusal cebir, sayısal analiz öğretiminde ve görüntü işleme bilim adamları arasında popülerdir. ⓘ
Ticari gelişim
MATLAB ilk olarak 1984 yılında Las Vegas'taki Otomatik Kontrol Konferansı'nda ticari bir ürün olarak piyasaya sürüldü. Yazılımı geliştirmek için MathWorks, Inc. kuruldu ve MATLAB programlama dili piyasaya sürüldü. İlk MATLAB satışı ertesi yıl Massachusetts Teknoloji Enstitüsü'nden Nick Trefethen'in on kopya satın almasıyla gerçekleşti. ⓘ
1980'lerin sonunda, MATLAB'ın birkaç yüz kopyası öğrenci kullanımı için üniversitelere satılmıştı. Yazılım, büyük ölçüde çeşitli alanlardaki uzmanlar tarafından özel matematiksel görevleri yerine getirmek için oluşturulan araç kutuları sayesinde popüler hale geldi. Araç kutularının birçoğu, MATLAB'ı akademide kullanan Stanford öğrencilerinin daha sonra yazılımı özel sektöre taşımaları sonucunda geliştirildi. ⓘ
Zaman içinde MATLAB, Digital Equipment Corporation, VAX, Sun Microsystems tarafından oluşturulan ilk işletim sistemleri ve Unix PC'ler için yeniden yazıldı. Sürüm 3 1987'de piyasaya sürüldü. İlk MATLAB derleyicisi Stephen C. Johnson tarafından 1990'larda geliştirilmiştir. Johnson tarafından 1990'larda geliştirilmiştir. ⓘ
2000 yılında MathWorks, MATLAB 6'da doğrusal cebir için Fortran tabanlı bir kütüphane ekledi ve yazılımın C dilindeki orijinal LINPACK ve EISPACK alt yordamlarının yerini aldı. MATLAB'ın Paralel Hesaplama Araç Kutusu 2004 Süper Bilgisayar Konferansı'nda piyasaya sürüldü ve 2010 yılında grafik işleme birimleri (GPU'lar) için destek eklendi. ⓘ
Yakın geçmiş
Yazılımda özellikle bazı büyük değişiklikler 2012'de 8. sürüm ile yapıldı. Kullanıcı arayüzü yeniden düzenlendi ve Simulink'in işlevselliği genişletildi. 2016 yılına gelindiğinde MATLAB, MATLAB Live Editor not defteri ve diğer özellikler de dahil olmak üzere çeşitli teknik ve kullanıcı arayüzü iyileştirmeleri sunmuştur. ⓘ
Sözdizimi
MATLAB uygulaması, MATLAB programlama dili etrafında oluşturulmuştur. MATLAB uygulamasının yaygın kullanımı, "Komut Penceresi "nin etkileşimli bir matematiksel kabuk olarak kullanılmasını veya MATLAB kodu içeren metin dosyalarının yürütülmesini içerir. ⓘ
Değişkenler
Değişkenler, =
atama operatörü kullanılarak tanımlanır. MATLAB zayıf ve dinamik tipli bir programlama dilidir. Zayıf tipli bir dildir çünkü tipler dolaylı olarak dönüştürülür. Dinamik tipli bir dildir çünkü değişkenler, değişken türü yazılmadan da atanabilirler, sembolik nesne olarak kabul edilip işlenirler, ve tipleri değiştirilebilir. Değişkenler, sabitlerden, diğer değişkenlerin değerlerini içeren işlemlerden, ya da bir fonksiyonun çıkışından tanımlanabilir. Örneğin:
>> x = 17
x =
17
>> x = 'hat'
x =
hat
>> y = x + 0
y =
104 97 116
>> x = [3*4, pi/2]
x =
12.0000 1.5708
>> y = 3*sin(x)
y =
-1.6097 3.0000 <span title="Kaynak: Türkçe Vikipedi, Bölüm "Değişkenler"" class="plainlinks">[https://tr.wikipedia.org/wiki/MATLAB#Değişkenler <span style="color:#dddddd">ⓘ</span>]</span>
>> x = 'şapka' x = Şapka ⓘ
>> x = [3*4, pi/2] x =
12.0000 1.5708 ⓘ
>> y = 3*sin(x) y =
-1.6097 3.0000
</syntaxhighlight> ⓘ
Vektörler ve matrisler
Basit bir dizi şu iki nokta üst üste sözdizimi kullanılarak tanımlanır: initial:
increment:
terminator. Örneğin:
>> dizi = 1:2:9
dizi =
1 3 5 7 9
1, 3, 5, 7 ve 9 değerlerinden oluşan bir dizi olan dizi adlı bir değişken tanımlar (veya dizi adlı mevcut bir değişkene yeni bir değer atar). Yani, dizi 1'den (başlangıç değeri) başlar, her adımda bir önceki değerden 2 (artış değeri) artar ve 9'a (sonlandırıcı değer) ulaştığında (veya aşmak üzere olduğunda) durur. ⓘ
Artış değeri aslında bu sözdiziminin dışında bırakılabilir (iki nokta üst üste işaretlerinden biriyle birlikte) ve varsayılan değer olarak 1 kullanılabilir.
>> ari = 1:5
ari =
1 2 3 4 5
ari
adlı değişkene 1, 2, 3, 4 ve 5 değerlerini içeren bir dizi atar, çünkü varsayılan değer olan 1 artış olarak kullanılır. ⓘ
İndeksleme, C, C++ ve Java gibi diğer programlama dillerinde yaygın olarak kullanılan sıfır tabanlı indekslemenin aksine, matematikte matrisler için olağan kural olan bir tabanlıdır. ⓘ
Matrisler, bir satırın öğelerini boşluk veya virgülle ayırarak ve her satırı sonlandırmak için noktalı virgül kullanarak tanımlanabilir. Eleman listesi köşeli parantez []
ile çevrelenmelidir. Parantezler ()
, elemanlara ve alt dizilere erişmek için kullanılır (ayrıca bir fonksiyon argüman listesini belirtmek için de kullanılır). ⓘ
>> A = [16, 3, 2, 13 ; 5, 10, 11, 8 ; 9, 6, 7, 12 ; 4, 15, 14, 1]
A =
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1 <span title="Kaynak: İngilizce Vikipedi, Bölüm "Vectors and matrices"" class="plainlinks">[https://en.wikipedia.org/wiki/MATLAB#Vectors_and_matrices <span style="color:#dddddd">ⓘ</span>]</span>
>> A(2,3)
ans =
11
İndeks kümeleri [2, 3, 4]
olarak değerlendirilen 2:4
gibi ifadelerle belirtilebilir. Örneğin, 2'den 4'e kadar olan satırlardan ve 3'ten 4'e kadar olan sütunlardan alınan bir alt matris şu şekilde yazılabilir:
>> A(2:4,3:4)
ans =
11 8
7 12
14 1
eye
fonksiyonu kullanılarak n boyutunda bir kare kimlik matrisi oluşturulabilir ve sırasıyla zeros
ve ones
fonksiyonları kullanılarak sıfır veya bir içeren herhangi bir boyuttaki matrisler oluşturulabilir.
>> eye(3,3)
ans =
1 0 0
0 1 0
0 0 1 <span title="Kaynak: İngilizce Vikipedi, Bölüm "Vectors and matrices"" class="plainlinks">[https://en.wikipedia.org/wiki/MATLAB#Vectors_and_matrices <span style="color:#dddddd">ⓘ</span>]</span>
>> sıfırlar(2,3)
ans =
0 0 0
0 0 0 <span title="Kaynak: İngilizce Vikipedi, Bölüm "Vectors and matrices"" class="plainlinks">[https://en.wikipedia.org/wiki/MATLAB#Vectors_and_matrices <span style="color:#dddddd">ⓘ</span>]</span>
>> ones(2,3)
ans =
1 1 1
1 1 1
Bir vektörün veya matrisin transpozesi ya transpose
fonksiyonu ile ya da matrisin sonuna nokta-prime eklenerek yapılır (nokta olmadan, prime karmaşık diziler için eşlenik transpozeyi gerçekleştirecektir):
>> A = [1 ; 2], B = A.', C = transpose(A)
A =
1
2
B =
1 2
C =
1 2 <span title="Kaynak: İngilizce Vikipedi, Bölüm "Vectors and matrices"" class="plainlinks">[https://en.wikipedia.org/wiki/MATLAB#Vectors_and_matrices <span style="color:#dddddd">ⓘ</span>]</span>
>> D = [0, 3; 1, 5], D.'
D =
0 3
1 5
ans =
0 1
3 5
Çoğu fonksiyon dizileri girdi olarak kabul eder ve her bir eleman üzerinde eleman bazında işlem yapar. Örneğin, mod(2*J,n)
J'deki her öğeyi 2 ile çarpacak ve ardından her öğeyi n modülüne indirgeyecektir. MATLAB standart for
ve while
döngüleri içerir, ancak (R gibi diğer benzer uygulamalarda olduğu gibi) vektörel gösterimin kullanılması teşvik edilir ve genellikle yürütülmesi daha hızlıdır. magic.m fonksiyonundan alıntılanan aşağıdaki kod, n'nin tek değerleri için bir sihirli kare M oluşturur (MATLAB fonksiyonu meshgrid
burada 1:n içeren kare matrisler I ve J oluşturmak için kullanılır):
[J,I] = meshgrid(1:n);
A = mod(I + J - (n + 3) / 2, n);
B = mod(I + 2 * J - 2, n);
M = n * A + B + 1; <span title="Kaynak: İngilizce Vikipedi, Bölüm "Vectors and matrices"" class="plainlinks">[https://en.wikipedia.org/wiki/MATLAB#Vectors_and_matrices <span style="color:#dddddd">ⓘ</span>]</span>
Yapılar
MATLAB, yapısal veri tiplerine sahiptir. MATLAB dizilerindeki bütün değişkenlerden itibaren, daha uygun bir adı "structure array"dır, dizinin bütün elemanları aynı ada sahiptir. Buna ek olarak, MATLAB dinamik alan adlarını destekler (look-up alan adları, alan manipülasyonları, vb.). Fakat maalesef, MATLAB JIT (Just In Time) MATLAB yapılarını desteklemez, bu yüzden çeşitli yapısal değişkenlerin sadece basit bir paketi bile maliyetli olacaktır. ⓘ
Fonksiyonlar
Bir MATLAB fonksiyonu oluştururken, dosyanın adı dosyadaki ilk fonksiyonun adıyla eşleşmelidir. Geçerli fonksiyon adları alfabetik bir karakterle başlar ve harfler, sayılar veya alt çizgiler içerebilir. Değişkenler ve fonksiyonlar büyük/küçük harfe duyarlıdır.
gbImage = imread('ecg.png');
grayImage = rgb2gray(rgbImage); % indekslenmemiş görüntüler için
level = graythresh(grayImage); % görüntüyü ikiliye dönüştürmek için eşik,
binaryImage = im2bw(grayImage, level);
Kırmızı, yeşil ve mavi renk kanallarını tek tek çıkarın.
redChannel = rgbImage(:, :, 1);
greenChannel = rgbImage(:, :, 2);
blueChannel = rgbImage(:, :, 3);
Siyah kısımları saf kırmızı yapın.
redChannel(~binaryImage) = 255;
greenChannel(~binaryImage) = 0;
blueChannel(~binaryImage) = 0;
Şimdi çıktı görüntüsünü oluşturmak için yeniden birleştirin.
rgbImageOut = cat(3, redChannel, greenChannel, blueChannel);
imshow(rgbImageOut); <span title="Kaynak: İngilizce Vikipedi, Bölüm "Functions"" class="plainlinks">[https://en.wikipedia.org/wiki/MATLAB#Functions <span style="color:#dddddd">ⓘ</span>]</span>
Fonksiyon kolları
MATLAB, fonksiyon tanıtan kollar tarafından lambda-calculus elemanlarını veya referans fonksiyonlarını destekler, .m uzantılı ya da uzantısı olmayan dosyaları/yuvalanmış işlevleri, her ikisini de destekler. ⓘ
MATLAB, .m dosyalarında veya anonim / iç içe geçmiş işlevlerde uygulanan işlev tutamaçlarını veya işlev referanslarını tanıtarak lambda hesabının öğelerini destekler. ⓘ
Sınıflar ve nesne yönelimli programlama
MATLAB, sınıflar, kalıtım, sanal gönderim, paketler, pass-by-value semantiği ve pass-by-reference semantiği dahil olmak üzere nesne yönelimli programlamayı destekler. Bununla birlikte, sözdizimi ve çağrı kuralları diğer dillerden önemli ölçüde farklıdır. MATLAB, sınıfın bir üst sınıf olarak handle'a sahip olup olmamasına (referans sınıfları için) veya olmamasına (değer sınıfları için) bağlı olarak değer sınıflarına ve referans sınıflarına sahiptir. ⓘ
Metot çağrısı davranışı değer ve referans sınıfları arasında farklıdır. Örneğin, bir yöntem çağrısı:
object.method();
yalnızca nesne bir referans sınıfının örneği ise nesnenin herhangi bir üyesini değiştirebilir, aksi takdirde değer sınıfı yöntemleri nesneyi değiştirmesi gerekiyorsa yeni bir örnek döndürmelidir. ⓘ
Aşağıda basit bir sınıf örneği verilmiştir:
classdef Merhaba
yöntemleri
function greet(obj)
disp('Merhaba!')
end
son
son <span title="Kaynak: İngilizce Vikipedi, Bölüm "Classes and object-oriented programming"" class="plainlinks">[https://en.wikipedia.org/wiki/MATLAB#Classes_and_object-oriented_programming <span style="color:#dddddd">ⓘ</span>]</span>
Bu, hello.m
adlı bir dosyaya konulduğunda aşağıdaki komutlarla çalıştırılabilir:
>> x = Hello();
>> x.greet();
Merhaba! <span title="Kaynak: İngilizce Vikipedi, Bölüm "Classes and object-oriented programming"" class="plainlinks">[https://en.wikipedia.org/wiki/MATLAB#Classes_and_object-oriented_programming <span style="color:#dddddd">ⓘ</span>]</span>
Grafik ve grafiksel kullanıcı arayüzü programlama
MATLAB, geliştirme uygulamalarıyla beraber grafiksel kullanıcı arayüzü özelliklerini de destekler. Ayrıca graph-plotting özellikleri de sıkıca entegre edilmiştir. Örneğin plot fonksiyonunda 2 vektör ile grafik üretilebilir. x ve y. Kod:
x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)
Ardından sinüs fonksiyonu ile şekiller üretilebilir:
MATLAB programı 3 boyutlu grafikler oluşturmak için surf, plot3 ya da mesh fonksiyonlarını kullanır. ⓘ
MATLAB'da GUI tasarım araçlarıyla (GUIDE) grafiksel kullanıcı arayüzleri oluşturulabilir. ⓘ
Sözdizim hatası
MATLAB ve diğer diller
MATLAB, C veya Fortran programlama dillerinde yazılmış fonksiyonları ve alt rutinleri çağırabilir. MATLAB veri tiplerinin geçirilmesine ve döndürülmesine izin veren bir sarmalayıcı fonksiyon oluşturulur. MEX dosyaları (MATLAB çalıştırılabilirleri), bu tür işlevlerin derlenmesiyle oluşturulan dinamik olarak yüklenebilir nesne dosyalarıdır. 2014'ten beri Python ile artan iki yönlü arayüz ekleniyordu. ⓘ
Perl, Java, ActiveX veya .NET ile yazılmış kütüphaneler MATLAB'den doğrudan çağrılabilir ve birçok MATLAB kütüphanesi (örneğin XML veya SQL desteği) Java veya ActiveX kütüphaneleri etrafında sarmalayıcılar olarak uygulanır. MATLAB'ı Java'dan çağırmak daha karmaşıktır, ancak MathWorks tarafından ayrı olarak satılan bir MATLAB araç kutusu ile veya JMI (Java-to-MATLAB Interface) adı verilen belgelenmemiş bir mekanizma kullanılarak yapılabilir (bu, JMI olarak da adlandırılan ilgisiz Java Metadata Interface ile karıştırılmamalıdır). Java için resmi MATLAB API'si 2016 yılında eklenmiştir. ⓘ
MathWorks'ten temin edilebilen MuPAD tabanlı Sembolik Matematik Araç Kutusuna alternatif olarak MATLAB, Maple veya Mathematica'ya bağlanabilir. ⓘ
MathML'yi içe ve dışa aktarmak için kütüphaneler de mevcuttur. ⓘ
MATLAB en popüler ticari sayısal hesaplama yazılım paketi olmakla birlikte, açık kaynak hesaplama dili GNU Octave, istatistik programlama dili R, hesaplama ortamı Maple ve hesaplama dili Julia gibi başka alternatifler de mevcuttur. ⓘ
MathML giriş ve çıkışları için kütüphanelerin bulunması gerekmektedir. ⓘ
Çin'den Çekilme
2020 yılında Çin devlet medyası, MATLAB'ın ABD yaptırımlarının bir sonucu olarak iki Çin üniversitesinden hizmetlerini geri çektiğini bildirdi ve buna açık kaynaklı alternatiflerin kullanımının artırılması ve yerli alternatiflerin geliştirilmesiyle yanıt verileceğini söyledi. ⓘ
Sürüm geçmişi
MATLAB yılda iki kez güncellenir. Yeni özellikler ve diğer iyileştirmelere ek olarak, her sürümde yeni hata düzeltmeleri ve daha küçük değişiklikler vardır. ⓘ
Sürüm | Serbest bırakma adı | Sayı | Birlikte verilen JVM | Yıl | Çıkış tarihi | Notlar ⓘ |
---|---|---|---|---|---|---|
1.0 | 1984 | |||||
2 | 1986 | |||||
3 | 1987 | İlk Matlab araç kutusu tanıtıldı; adi diferansiyel denklemler için destek eklendi. | ||||
3.5 | 1990 | DOS üzerinde çalışıyordu ancak en az 386 işlemci gerektiriyordu; bir matematik yardımcı işlemcisine ihtiyaç duyuyordu. | ||||
4 | 1992 | Windows 3.1x ve Macintosh'ta çalıştırıldı. | ||||
4.2c | 1994 | Windows 3.1x'te çalıştırıldı; matematik yardımcı işlemcisi gerekiyordu. | ||||
5.0 | Cilt 8 | 1996 | Aralık 1996 | Tüm platformlarda birleştirilmiş sürümler. | ||
5.1 | Cilt 9 | 1997 | Mayıs 1997 | |||
5.1.1 | R9.1 | |||||
5.2 | R10 | 1998 | Mart 1998 | Klasik Mac'lerde çalışan son sürüm. | ||
5.2.1 | R10.1 | |||||
5.3 | R11 | 1999 | Ocak 1999 | |||
5.3.1 | R11.1 | Kasım 1999 | ||||
6.0 | R12 | 12 | 1.1.8 | 2000 | Kasım 2000 | Birlikte verilen Java sanal makinesi (JVM) ile ilk sürüm. |
6.1 | R12.1 | 1.3.0 | 2001 | Haziran 2001 | Windows 95 için son sürüm. | |
6.5 | R13 | 13 | 1.3.1 | 2002 | Temmuz 2002 | |
6.5.1 | R13SP1 | 2003 | ||||
6.5.2 | R13SP2 | Windows 98, Windows ME, IBM/AIX, Alpha/TRU64 ve SGI/IRIX için son sürüm. | ||||
7 | R14 | 14 | 1.4.2 | 2004 | Haziran 2004 | Anonim ve iç içe fonksiyonlar tanıtıldı; Mac için yeniden tanıtıldı (Mac OS X altında). |
7.0.1 | R14SP1 | Ekim 2004 | ||||
R14SP1+ | 2004 | Kasım 2004 | Paralel Hesaplama Araç Kutusu tanıtıldı. | |||
7.0.4 | R14SP2 | 1.5.0 | 2005 | 7 Mart 2005 | Bellek eşlemeli dosyalar için destek eklendi. | |
7.1 | R14SP3 | 1.5.0 | 1 Eylül 2005 | Windows XP 64-bit için mevcut ilk 64-bit sürümü. | ||
7.2 | R2006a | 15 | 1.5.0 | 2006 | 1 Mart 2006 | |
7.3 | R2006b | 16 | 1.5.0 | 1 Eylül 2006 | HDF5 tabanlı MAT dosyası desteği eklendi. | |
7.4 | R2007a | 17 | 1.5.0_07 | 2007 | 1 Mart 2007 | Tekli genişletme etkinken öğe öğe ikili işlem uygulamak için yeni bsxfun işlevi eklendi.
|
7.5 | R2007b | 18 | 1.6.0 | 1 Eylül 2007 | Windows 2000 ve PowerPC Mac için son sürüm; Windows Vista için Lisans Sunucusu desteği; P kodu için yeni dahili format. | |
7.6 | R2008a | 19 | 1.6.0 | 2008 | 1 Mart 2008 | Yeni bir sınıf tanımı sözdizimi ile nesne yönelimli programlama yeteneklerinde önemli geliştirmeler; paketlerle ad alanlarını yönetme yeteneği. |
7.7 | R2008b | 20 | 1.6.0_04 | 9 Ekim 2008 | SSE2 içermeyen işlemciler için son sürüm; Yeni Map veri yapısı; rastgele sayı üreteçlerinde yükseltmeler. | |
7.8 | R2009a | 21 | 1.6.0_04 | 2009 | 6 Mart 2009 | Microsoft 32-bit ve 64-bit Windows 7 için ilk sürüm; .NET Framework'e yeni harici arayüz. |
7.9 | R2009b | 22 | 1.6.0_12 | 4 Eylül 2009 | Intel 64-bit Mac için ilk ve Solaris SPARC için son sürüm; fonksiyon çağrılarında argümanları yok saymak için tilde operatörü (~ ) için yeni kullanım.
| |
7.9.1 | R2009bSP1 | 1.6.0_12 | 2010 | 1 Nisan 2010 | Hata düzeltmeleri. | |
7.10 | R2010a | 23 | 1.6.0_12 | 5 Mart 2010 | Intel 32 bit Mac için son sürüm. | |
7.11 | R2010b | 24 | 1.6.0_17 | 3 Eylül 2010 | Numaralandırmalar için destek eklendi; MATLAB kodunu NVIDIA CUDA tabanlı GPU'larda çalıştırmak için özellikler eklendi. | |
7.11.1 | R2010bSP1 | 1.6.0_17 | 2011 | 17 Mart 2011 | Hata düzeltmeleri ve güncellemeler. | |
7.11.2 | R2010bSP2 | 1.6.0_17 | 5 Nisan 2012 | Hata düzeltmeleri. | ||
7.12 | R2011a | 25 | 1.6.0_17 | 8 Nisan 2011 | Rastgele sayı üretimini kontrol etmek için yeni rng fonksiyonu.
| |
7.13 | R2011b | 26 | 1.6.0_17 | 1 Eylül 2011 | Belleğe yüklemeden değişkenlerin parçalarına doğrudan MAT dosyalarından erişme/değiştirme yeteneği eklendi; Paralel Hesaplama Araç Kutusu ile maksimum yerel işçi sayısı 8'den 12'ye çıkarıldı. | |
7.14 | R2012a | 27 | 1.6.0_17 | 2012 | 1 Mart 2012 | 32-bit Linux destekli son sürüm. |
8 | R2012b | 28 | 1.6.0_17 | 11 Eylül 2012 | Toolstrip arayüzü ile ilk sürüm; MATLAB Uygulamaları tanıtıldı; yeniden tasarlanmış dokümantasyon sistemi. | |
8.1 | R2013a | 29 | 1.6.0_17 | 2013 | 7 Mart 2013 | Yeni birim test çerçevesi. |
8.2 | R2013b | 30 | 1.7.0_11 | 6 Eylül 2013 | Yerleşik Java Çalışma Zamanı Ortamı (JRE) sürüm 7'ye güncellendi; Yeni tablo veri türü. | |
8.3 | R2014a | 31 | 1.7.0_11 | 2014 | 7 Mart 2014 | MEX dosyaları oluşturmak için basitleştirilmiş derleyici kurulumu; çekirdek MATLAB'de USB Web kamerası desteği; Paralel Hesaplama Araç Kutusu ile yerel çalışan sayısı artık 12 ile sınırlı değil. |
8.4 | R2014b | 32 | 1.7.0_11 | 3 Ekim 2014 | Yeni sınıf tabanlı grafik motoru (a.k.a. HG2); GUI'de sekme işlevi; geliştirilmiş kullanıcı araç kutusu ambalajı ve yardım dosyaları; zaman-tarih manipülasyonları için yeni nesneler; IDE'de Git-Subversion entegrasyonu; MapReduce ile büyük veri yetenekleri (Hadoop'a ölçeklenebilir); MATLAB içinden Python kullanmak için yeni py paketi; Python'dan MATLAB'ı çağırmak için yeni motor arayüzü; birkaç yeni ve geliştirilmiş işlev: webread (JSON/XML destekli RESTful web hizmetleri), tcpclient (soket tabanlı bağlantılar), histcounts , histogram , animatedline ve diğerleri.
| |
8.5 | R2015a | 33 | 1.7.0_60 | 2015 | 5 Mart 2015 | |
8.5 | R2015aSP1 | 1.7.0_60 | 14 Ekim 2015 | Windows XP ve Windows Vista'yı destekleyen son sürüm. | ||
8.6 | R2015b | 34 | 1.7.0_60 | 3 Eylül 2015 | Yeni MATLAB yürütme motoru (diğer adıyla LXE); grafikler ve ağlarla çalışmak için grafik ve digraf sınıfları; Windows'ta desteklenen derleyici olarak MinGW-w64; 32 bit destekli son sürüm. | |
9.0 | R2016a | 35 | 1.7.0_60 | 2016 | 3 Mart 2016 | Canlı Komut Dosyaları yayınlandı: metin, kod ve çıktıyı birleştiren etkileşimli belgeler (Literate programlama tarzında); Uygulama Tasarımcısı tanıtıldı: uygulamalar oluşturmak için yeni bir geliştirme ortamı (yeni tür UI figürleri, eksenler ve bileşenlerle); Duraklatma Düğmesi kullanarak çalışan programların yürütülmesini duraklatın. |
9.1 | R2016b | 36 | 1.7.0_60 | 15 Eylül 2016 | Komut dosyalarında yerel işlevler tanımlama yeteneği eklendi; boyutların otomatik genişletilmesi (daha önce bsxfun 'a açık çağrı yoluyla sağlanıyordu); Büyük veriler için uzun diziler; yeni dize türü; JSON'u kodlamak / kodunu çözmek için yeni işlevler; Java için resmi MATLAB Engine API.
| |
9.2 | R2017a | 37 | 1.7.0_60 | 2017 | 9 Mart 2017 | MATLAB Online yayınlandı: bir web tarayıcısından erişilen bulut tabanlı MATLAB masaüstü; çift tırnaklı dizeler; Memoization için yeni memoize işlevi; genişletilmiş nesne özellikleri doğrulaması; birim testi için mocking çerçevesi; MEX varsayılan olarak 64 bit'i hedefler; ısı haritası grafikleri oluşturmak için yeni ısı haritası işlevi.
|
9.3 | R2017b | 38 | 1.8.0_121 | 21 Eylül 2017 | MATLAB kodunu Nvidia için CUDA koduna dönüştüren bir GPU Coder tanıtıldı. | |
9.4 | R2018a | 39 | 1.8.0_144 | 2018 | 15 Mart 2018 | Canlı düzenleyicide iyileştirmeler; C++ MEX arayüzünün tanıtımı; sekme tamamlamayı özelleştirme yeteneği; web uygulamaları. |
9.5 | R2018b | 40 | 1.8.0_152 | 12 Eylül 2018 | Amazon Web Services gibi bulut sağlayıcıları için destek eklendi; Neural Network Toolbox, Deep Learning Toolbox ile değiştirildi. | |
9.6 | R2019a | 41 | 1.8.0_181 | 2019 | 20 Mart 2019 | MATLAB Projeleri yayınlandı; Stateflow ile durum makinesi programlama eklendi. |
9.7 | R2019b | 42 | 1.8.0_202 | 11 Eylül 2019 | Girdi doğrulaması için 'arguments' bloğunun tanıtılması; fonksiyon çıktılarına nokta indekslemenin etkinleştirilmesi; Canlı Editör Görevlerinin tanıtılması. | |
9.8 | R2020a | 43 | 2020 | 19 Mart 2020 | Mupad not defterinin kaldırılması; AMD CPU'lar için geliştirilmiş destek (AVX2); MATLAB kod dosyaları için varsayılan UTF-8 kodlaması; Simulink ile bağımsız uygulamalar oluşturma yeteneği. | |
9.9 | R2020b | 44 | 17 Eylül 2020 | AMD CPU'lar (AVX2) için geliştirilmiş destek; Simulink'in çevrimiçi sürümü. | ||
9.10 | R2021a | 45 | 2021 | 11 Mart 2021 | ||
9.11 | R2021b | 46 | 22 Eylül 2021 | |||
9.12.0 | R2022a | 47 | 2022 | 9 Mart 2022 |
Numara (veya sürüm numarası), Eşzamanlı Lisans Yöneticisi programı FLEXlm tarafından bildirilen sürümdür. Hem MATLAB hem de resmi araç kutularındaki değişikliklerin tam listesi için MATLAB sürüm notlarına bakın. ⓘ
Lisans
MATLAB, MathWorks şirketinin tescilli bir üründür, bu yüzden kullanıcılar satıcıya bağlıdır. MATLAB Builder kütüphane dosyalarıyla MATLAB fonksiyonları dağıtılıp, .NET veya Java uygulaması oluşturulabiliyor olmasına rağmen, ileriki gelişimi MATLAB diline bağlı olacaktır. ⓘ
Her araç kutusu ayrı olarak satın alınmaktadır. Eğer değerlendirme lisansı talep edilirse, MATLAB değerlendirmesi için MathWorks satış departmanı proje hakkında detaylı bilgi talep eder. Bir lisans edinmenin tüm süreçleri, para ve zaman şartlarından dolayı çok pahalıdır. Değerlendirme lisansı 2 veya 4 hafta içinde değerlendirilip verilir. MATLAB'ın öğrenci versiyonu da mevcuttur. ⓘ
Şikayet eden AB antitröst düzenleyicileri Mathworks'ün rakip lisansları satmayı reddedip reddetmediğini araştırıyor. ⓘ
Dosya uzantıları
Yerel
- .fig
- MATLAB figürü
- .m
- MATLAB fonksiyonu, scripti, ya da sınıfı
- .mat
- MATLAB depolama değişkenleri için binary dosyası
- .mex...
- MATLAB executable (belirli platform, ör. Mac için ".mexmac", Linux için ".mexglx" vb.)
- .p
- MATLAB content-obscured .m dosyası (result e()) ⓘ
Üçüncü parti
- .jkt
- MATLAB için Jacket tarafından oluşturulan GPU önbellek dosyası (AccelerEyes)
- .mum
- MATLAB CAPE-OPEN Unit Operation Model File (AmsterCHEM) ⓘ