Matlab; elektrik-elektronik, bilgisayar, makine, inşaat mühendislik için slayt ders notları.
Home » Posts filed under MATLAB
Matlab Muhendislik Slayt Ders Notu
Matlab ile Excelden Veri Nasil Cekilir?
Matlab kulanarak bir çok veritabanı tipinden (xml gibi) veri çekebileceğiniz gibi "Microsoft Excel" den data çekebilirsiniz. Peki bu ne işimize yarar derseniz; excel ile oluşturulmuş 500 tane hisse senedinin 1 yıl boyunca günlük verilerinin olduğu bir data düşünün. Bu bahsettiğim gibi karmaşık verilere ve fazla boyuta sahip data üzerinde el ile oynama yapmak günlerinizi alabilir. Bunun için excel de oluşturulmuş bir dosyadan aşağıdaki matlab komutları ile veri çekip matlab içerisinde array oluşturabilirsiniz. Matlab e array tanımlattıktan sonra ise yazacağınız bir kaç satır kod ile grafikler yaratabilir, sunumlarınızda .fig yada .m formatında kullanabilirsiniz. "%" simgesi ile başlayan satırlar kodları anlamanız için yaptığım yorumlardır. aşağıda datası excel de olup verileri matlabe çekip her bir öğrencinin notunu hesaplayan program kodları mevcuttur.
** xlsread komutunda excel dosyanızın yerini dogru yazdığınızdan emin olun.
%excel dosyasından veri çekip, bununla bir array oluşturur.
%oylesine olusturdugum excel dosyasinda ogrenci notlari girdim
%stud input ile hangi ogrencinin ortalamasini hesaplatmak istedigimi
%kullaniciya sordum
stud=input('Select student number')
%asagida grades adinda array olusturdum bu arrayi excel den veri cekip
%yapti, (help xlsread)
[grades] = xlsread('G:/desktop/student_grades.xlsx','Notlar');
%burada secilen ogrencinin excelde bulunan 2. 3. 4. kolonlardaki notlarini
%alip topladi
toplam = grades(stud,2)+grades(stud,3)+grades(stud,4)
%asagidaki satirda verilen uc notun ortalamasini bulmak icin 3 e boldum
ortalama = toplam/3
genelort=grades(21,5)
fprintf('student: %d\n',stud);
%secilen ogrencinin ortalamasinin cikis komutu ve genel ortalama ile
%arasındaki grafigin cizimi eger not ortalamadan yuksekse grafik cikmaz
%ogrenci basarilidir. grafik cikar ise ogrencinin genel ortalamaya olan
%yakınligi grafikten takip edilebilir.
fprintf('average of student: %d\n',ortalama);
plot(ortalama:genelort);
Matlab de Piyano Programi Yapin
Burada ki sıkıştırılmış dosyayı indirip, bilgisayarınızda zip içerisinden çıkarın. Matlab ile aşağıdaki şekilde ki gibi path ayarını yapıp indirdiğiniz klasörü bulunuz.
![]()
Matlab komut satırına ">keys" yazarak programı çağırınız. Bir müddet karşınıza çıkan piyanonun matlab ile nasıl yapılmış olabileceğini düşünürken, açık kaynak kodlu bu ".m" matlab programını inceleyebilir sizde matlab'in engin okyanusu için yeni şeyler keşfedebilirsiniz.
Matlab Proje Ornegi 3
Matlab de bir proje üzerinde çalışırken, hayatın her alanında olduğu gibi planlı ve düzenli bir şekilde çalışmanız başarılı ".m" programları yazmanızı sağlayacaktır. Aşağıda ekran görüntüsü bulunan programı matlab de açıp incelediğinizde göreceksiniz ki bir çok fonksiyonun(function varargout = final1(varargin) birleşimi ile oluşturulmuştur. Program yazarı, önce oturup düşünür kafasında tasarlar programı yazmadan önce, ve düşüncesinde parçalarını yerleştirmiş olur. Aşağıda ki görüntüye ait programın açık kaynak kodlarını indirmek için tıklayınız. Program basit bir oyun, sayıların üzerine çift tıklayarak sıralı bir şekilde düzenlemeye çalışıyorsunuz. Tabi ki en çok kullanılan komut "if else"
Matlab Proje Ornegi 2
MATLAB
Matlab isminin açılımı: "Matrix Labaratory". Matlab ile kağıt üzerinde sayfalarca işlem gerektiren "Matrix" (çarpmak, bölmek, indislerini almak, tersini almak, pivotlarını belirlemek, tanımlanan farklı matrisler arasında ki benzerlikleri ve farklılıkları belirlemek) işlemlerini yapabilirsiniz.
Türkiye de henüz yaygın olarak kullanılmamasına rağmen, Amerika Birleşik Devletleri, Kanada, İngiltere gibi teknolojiye hakim ülkelerde Matlab profesyonel makine kontrolü, robot hareket algoritması, göz tarayıcısı, parmak izi okuyucusu gibi sistemler için kullanılır. Ayrıca bir "xml", "xls", "html" ve java script dosyalarıyla beraber çalışabilmesi kabiliyeti ile belirlenen data base den verileri çekip 3 boyutlu
Matlab üzerinde tanımladığınız fonksiyon ve polinomların grafiklerini elde edebilirsiniz. Fonksiyonları değişken yapıp, yazdığınız program arayüzü ve matlab ile oluşturduğunuz ".m" uzantılı program vasıtasıyla kullanıcıdan değerler alıp grafik çizdirebilirsiniz (bkz. plot(x,y))
- Temel Matematik Fonksiyonlarının Matlab'de yazılışı.
- Matlab ile belirli aralıktaki sayıların toplamını yapan matlab kodları
- Matlab de Excel (xls) dosyalarından nasıl veri çekilir?
- Matlab programlama ile nasıl "sanal piyano" yapılır?
- Matlab programlama giriş seviyesi klavuzu
- Matlab Proje Örneği 1
- Matlab Proje Örneği 2
- Matlab Proje Örneği 3
MATLAB Programlamaya Giris
MATLAB ILE PROGRAM YAZMAK
Su ana kadar Matlab ile gerçeklestirdigimiz uygulamalarda ,belirli bir islemi gerçeklestirmek
üzere gerekli olan Matlab komut ya da fonksiyonlarini Matlab komut satirindan,>>
sembollerinden sonra tek tek girerek icra ediyorduk.
Oysa,Matlab komut ya da fonksiyonlarindan gerçeklestirmek istediginiz bir isle iliskili özel
bir grubu,bir dosyaya kaydederek,bu dosya isminin çagrilmasi ile icra edebilirsiniz.Sonuçta
çok pratik ve etkin bir yol ortaya çikar;söz konusu islemin gerektigi her anda hazirlanan dosya
icra edilerek,komutlarin tek tek girilmesine gore, önemli bir zaman tasarrufu saglanir.
Bir Matlab deyimleri ya da komutlari grubunu içeren bu tip bir dosyaya Matlab’de Mdosyasi(
M-file) adi verilir.Bu tip dosyalariin uzantisi daima .m seklinde olmalidir.Bir Matlab
M dosyasi,bir komut grubu içerdigi için tanim itibari ile bir program dosyasidir.Dolayisi ile
,Matlab’de,M-dosyalari olusturularak programlama yapilabilir.
M dosyasi içine tüm Matlab komut ve fonksiyonlari yerlestirilebilir;bunlar arasinda asagida
inceleyecegimiz kontrol komutlari da bulunabilir.M-dosyalari aslinda bilinen metin(text)
dosyasi tipinde dosyalardir.Ancak özel bir komut yorumlayicisi içinden geçirilirler.
Matlab’de birçok matematik ya da mühendislik problemini çözmek için yazilacak programlar
C/C++,FORTRAN ya da PASCAL’daki karsiliklarina göre çok daha basit ve kisadir.Bu
aslinda beklenen bir sonuçtur çünkü Matlab’de gerçekte bu amaçla kullanilacak pek çok hazir
fonksiyon mevcuttur.
MATLAB’TE BIR m-DOSYAYI(PROGRAMI) ÇALISTIRMAK
Matlab’de bir program çalistirmak için asagidaki adimlar izlenmelidir:
1)Program Matlab editörü içinde yazilir ve saklanir.
2)Programin saklandigi dosya daima .m uzantili olmalidir.
3)Programi çalistirmak için ya komut satirindan ismi girilerek enter’a basilir veya asagidaki
gibi Debug/Run menüsü kullanilir:
4)Programi icra edebilmek için,komut satirinda, sadece programin adi yazilir;uzantisi
yazilmamalidir.
SEÇME(SELECTION) TIPINDEKI KONTROL DEYIMLERI:
islemi gerçeklestiren bir deyimdir.
Sartli dallanma, herhangi bir programlama dili için temel kontrol yapisidir.
Sartli dallanma islemi sayesinde,bir program, kararlar alma imkanina kavusur; bir ifadenin
sonucuna göre, bir komutlar dizisinin icra edilip edilmeyecegine karar verebilir.
Ifadenin degeri, bir icradan digerine degisebilecegi için, bu özellik bir programa farkli
verilere karsi farkli sekillerde davranma imkani saglar. Matlab dilinde sartli dallanma if ve
else anahtar sözcükleri ile gerçeklestirilir. if deyiminin en basit sekli için yazilis biçimi
asagidaki gibidir:
if ifadeBurada ifadenin degeri dogru(true) ise deyim1 icra edilir sonra icra deyim2’ye
deyim1;
end
deyim2;
geçer.Ifadenin degeri yanlis(false) ise bu durumda da dogrudan deyim2’ye
geçilir.Ifadenin degeri yanlis ise deyim1 icra edilmeyecektir.Asagida if yapisini açiklayan bir
akis diyagrami verilmistir.
if ifade
deyim1 ;
else
deyim2;
end
deyim3;
...
if ifade
deyim1;
deyim2;
..
deyim_n;
end
deyim_x;
..
If ifade
Deyim1;
Deyim2;
..
deyim_n;
else
deyim_n+1;
deyim_n+2;
..
deyim_m;
end
deyim_k;
...
Temel Matematik Fonksiyonlarinin Matlab-de Yazilisi
İşlem Matlab Formatı
e^x >>exp(x)
√x >>sqrt(x)
ln x >>log(x)
log10 x >>log10(x)
cos x >>cos(x)
sin x >>sin(x)
tan x >>tan(x)
cos-1 x >>acos(x)
sin-1 x >>asin(x)
tan-1 x >>atan(x)
****
e^x = e üzeri x ( matlab de üslü sayılar "Shift+3+3" şeklinde yazılır "^" sempoli iki kere basınca çıkar ve üslü sayıyı göstermek için bir tanesini silmeniz gerekir. Mesela 5 üzeri 6 sayısının matlab de kodlanması = "5^6" şeklinde olur.
Matlab Proje Ornegi
function EZresize
%Ezresize script'i size linerenterpolasyon algoritması yolu ile
%fotoğrafları kolay ve çabukça yeniden boyutlandırma yani
%pixeli ile oynama şansı verir
%kodlama :"Joe Blaine --- Image Resizing"
close all
clc
%Değişkenler
figure_color=[1 1 1];
panel_color=[0.5 0.5 0.5];
entryField_color=[1 1 1];
%Kolları
hFigure=figure(...
'Units','Pixels',...
'Position',[1000 300 198 348],...
'Toolbar','none',...
'MenuBar','none',...
'NumberTitle','off',...
'Color',[.5 .5 .5],...
'Name','EZresize {Cadence Software Deveolpment}');
hPanel=uipanel(...
'Parent', hFigure,...
'Units','Pixels',...
'Position',[0 0 200 350],...
'BackgroundColor',panel_color);
hImageChoice=uicontrol(...
'Style','Edit',...
'Parent',hPanel,...
'Units','Pixel',...
'Position',[10 250 180 25],...
'String','car.jpg',...
'BackgroundColor',entryField_color);
hButton=uicontrol(...
'Style','pushbutton',...
'Parent',hPanel,...
'Units','Pixels',...
'Position',[25 300 150 20],...
'String','Get Image',...
'BackgroundColor',panel_color,...
'Callback',@imageChoice_callback);
hImageChoiceText=uicontrol(...
'Style','Text',...
'Parent',hPanel,...
'Units','Pixels',...
'Position',[10 270 180 20],...
'String','Enter the name of your image(.jpg):',...
'BackgroundColor',panel_color,...
'HorizontalAlignment','Center');
hWidthEditBox=uicontrol(...
'Style','Edit',...
'Parent',hPanel,...
'Units','Pixel',...
'Position',[10 200 180 25],...
'String','300',...
'BackgroundColor',entryField_color);
hWidthText=uicontrol(...
'Style','Text',...
'Parent',hPanel,...
'Units','Pixels',...
'Position',[10 220 180 20],...
'String','Enter Desired Width (in Pixels)',...
'BackgroundColor',panel_color,...
'HorizontalAlignment','Center');
hHeightEditBox=uicontrol(...
'Style','Edit',...
'Parent',hPanel,...
'Units','Pixel',...
'Position',[10 150 180 25],...
'String','200',...
'BackgroundColor',entryField_color);
hHeightText=uicontrol(...
'Style','Text',...
'Parent',hPanel,...
'Units','Pixels',...
'Position',[10 170 180 20],...
'String','Enter Desired Height (in Pixels)',...
'BackgroundColor',panel_color,...
'HorizontalAlignment','Center');
hButton2=uicontrol(...
'Style','pushbutton',...
'Parent',hPanel,...
'Units','Pixels',...
'Position',[25 120 150 20],...
'String','Resize It!',...
'BackgroundColor',panel_color,...
'Callback',@resizeButton_callback);
hImageWriteEditBox=uicontrol(...
'Style','Edit',...
'Parent',hPanel,...
'Units','Pixel',...
'Position',[10 60 180 25],...
'String','',...
'BackgroundColor',entryField_color);
hButton3=uicontrol(...
'Style','pushbutton',...
'Parent',hPanel,...
'Units','Pixels',...
'Position',[25 30 150 20],...
'String','Save Image',...
'BackgroundColor',panel_color,...
'Callback',@imageWrite_callback);
hImageWriteText=uicontrol(...
'Style','Text',...
'Parent',hPanel,...
'Units','Pixels',...
'Position',[10 80 180 20],...
'String','Enter a filename',...
'BackgroundColor',panel_color,...
'HorizontalAlignment','Center');
handle_list=...
[hFigure,hPanel,hImageChoice,...
hButton,hButton2,hButton3,...
hImageChoiceText,...
hWidthEditBox,...
hWidthText,...
hHeightEditBox,...
hHeightText,...
hImageWriteEditBox,...
hImageWriteText];
set(handle_list,...
'Units','Normalized');
%Callback Functions
function imageChoice_callback(hObject,eventdata)
img=imread(get(hImageChoice,'String'),'jpg');
% W=genişlik
% H=yukseklik
% C=3 for RGB color images
[H W C]=size(img);
oldsize=size(img);
hFigure=figure(...
'Units','Pixels',...
'Position',[200 200 W H],...
'Toolbar','none',...
'MenuBar','none',...
'NumberTitle','off',...
'Color',figure_color,...
'Name','EZresize {Cadence Software Deveolpment}');
hAxes=axes(...
'visible','off',...
'Units','Pixels',...
'Position',[0 0 W H],...
'NextPlot','ReplaceChildren',...
'XLimMode','Manual',...
'YLimMode','Manual',...
'XLim',[1 W],...
'YLim',[1 H],...
'YDir','Reverse');
imagesc(img);
setappdata(hFigure,'UserData',img);
end %imageChoice_callback
function resizeButton_callback(hObject, eventdata)
%Get data
img=getappdata(hFigure,'UserData');
img=double(img);
oldsize=size(img);
H=str2double(get(hWidthEditBox,'String'));
W=str2double(get(hHeightEditBox,'String'));
newsize=[W H];
%Routine
% Scaling factor
factor = (oldsize(1:2)-1)./(newsize-1);
% Create new grid (foundation for image)
u = 0:newsize(1)-1;
v = 0:newsize(2)-1;
[U, V] = ndgrid(u, v);
% Make a conection between the new grid and the old size
u = u.*factor(1) + 1;
v = v.*factor(2) + 1;
% Compute the location of each new point relative to one nearest
% neighbor of the original image
U = U.*factor(1); U = U - fix(U);
V = V.*factor(2); V = V - fix(V);
% Perform interpolation element by element
U = repmat(U, [1 1 3]);
V = repmat(V, [1 1 3]);
N = (V-1).*((U-1).*img(floor(u), floor(v), :) - ...
U.*img(ceil(u), floor(v), :)) - ...
V.*((U-1).*img(floor(u), ceil(v), :) - ...
U.*img(ceil(u), ceil(v), :));
N=uint8(N);
[H W C]=size(N);
hFigure=figure(...
'Units','Pixels',...
'Position',[100 100 W H],...
'Toolbar','none',...
'MenuBar','none',...
'NumberTitle','off',...
'Color',figure_color,...
'Name','Resized Image');
hAxes=axes(...
'visible','off',...
'Units','Pixels',...
'Position',[0 0 W H],...
'NextPlot','ReplaceChildren',...
'XLimMode','Manual',...
'YLimMode','Manual',...
'XLim',[1 W],...
'YLim',[1 H],...
'YDir','Reverse');
imagesc(N)
setappdata(hFigure,'UserData',N);
end %resizeButton_Callback
function imageWrite_callback(hObject, eventdata)
F=getappdata(hFigure,'UserData');
H=get(hImageWriteEditBox,'String')
imwrite(F,H)
end %imageWrite_callback
end %EZresize
%Credits: Andreas Klimke, for an image resizing algorithm
Matlab ile belirli aralıktaki sayilarin karesinin toplami
Matlab programlamada for döngüsü ile 1 den 10 a kadar olan sayıların karesinin toplamı:











