Level 1

Matlab ‘da Fonksiyon yazdığınız belgenin adı ile Fonksiyon adı aynı olmalıdır. Matlab İleri Düzey Algoritmalar ve Matlab Grafik çizimleri ‘ni inceleyebilirsiniz.


1-) 3'lük tabanındaki sayıyı 10 'luk tabanına çeviren fonksiyon

function [cp]=df(n)
s = num2str(n);
toplam = 0;
cevir=fliplr(s);
for i=1:length(cevir)
    d=str2double(cevir(i));
    if(d>=0) && (d<3)y
        toplam=toplam+(d*(3^(i-1)));  
    else
        fprintf('3 lük tabanında sayı giriniz.');
    end
    end
cp=toplam;
endCode language: HTML, XML (xml)

2-) Girilen 2 sayi arkadaş sayı mı?

function [cp1,cp2]=yy(n,h)
toplam=0;
toplam1=0;
for i=1:n-1
    if(mod(n,i)==0)
    toplam=toplam+i;
    end
end
 cp1=toplam;
for i=1:h-1
    if(mod(h,i)==0)
    toplam1=toplam1+i;
    end
end
cp2=toplam1;
if (n==cp2)
    disp('Arkadassayidir');
else
    disp('degildir');
end

3-) 3 basamaklı sayıların rakamlarının küplerinin toplamının kendisine eşit olduğu sayılar

clc
liste = [];
for sayi=100:999
    s = num2str(sayi);
    s1 = str2double(s(1));
    s2 = str2double(s(2));
    s3 = str2double(s(3));
    toplam = s1^3 + s2^3 + s3^3;
    if (sayi == toplam)
        liste = [liste sayi];
    end    
end
disp(liste);

4-) 4 basamaklı armstrong sayılarının adedini veren fonksiyon

function [sonuc]=armstrong()
liste=[];
for n=1000:9999
    s=num2str(n);
    b1000=str2double(s(1))^3;
    b100=str2double(s(1))^3;
    b10=str2double(s(1))^3;
    b1=str2double(s(1))^3;
    toplam=b1000+b100+b10+b1;
    if(n==toplam)
        liste=[liste n];
    end
end
disp(liste);
sonuc=sum(liste);
end

5-) 1 - 1000 arasındaki arkadaş sayıları bulan fonksiyon

function [ ] = arkadas(  )
for i=1:10000
    a1=raktop(i);
    a2=raktop(a1);
    if a2==i && a1<a2
        fprintf('%g,%g sağlar.\n',a1,a2);
    end
end
 
end
function toplam = raktop(n)
toplam=0;
for i=1:n-1
    if mod(n,i)==0
        toplam=toplam+i;
    end
end
endCode language: HTML, XML (xml)

6-) Girilen Terim sayısına kadar olan sayıları toplamını ard arda yazdıran fonksiyon

clc;
terim=input('Kaçıncı terime kadar yazılsın:');
if terim<1
     fprintf('0 dan büyük sayı giriniz:');
elseif terim==1
     fprintf('%g',0);
elseif terim==2
     fprintf('%g,%g',0,1);
elseif terim==3
     fprintf('%g,%g,%g',0,1,1);
else
     fprintf('%g,%g,%g',0,1,1);
     a=0;b=1;c=1;
     for i=4:terim
     d=a+b+c;
     fprintf(',%g',d);
     a=b;
     b=c;
     c=d;
     end
     end
     fprintf('\n');Code language: PHP (php)

7-) Girilen sayiya kadar olan mükemmel sayıları listeleyen matlab kodunu alt fonksiyon kullanarak yazınız.

(Kendisi hariç pozitif tam sayı bölenleri toplamı aynı sayıyı veriyorsa mükemmel sayıdır)

function [ liste ] = mukemmel( sayi )
liste=[];
for i=1:sayi
     if pozboltop(i)==i
     liste=[liste i];
     end
end
end
function toplam = pozboltop(k)
    toplam=0;
    for j=1:k-1
        if mod(k,j)==0
             toplam=toplam+j;
        end
    end
end


FONKSİYON İSMİ İLE BELGENİN ADI AYNI OLMALIDIR.


Matlab Grafik Çizimleri , Grafik Çizdirme

Matlab’da Explot fonksiyonu:

Metin olarak girilen f (x,y)=0 biçiminde kapalı fonksiyon grafiğini çizmede kullanılır.
explot(‘kapalı fonk ifadesi’);
explot(‘kapalı fonk ifadesi’,[x min x max]);

Example: y=(x^3+7x)/(x-5) fonksiyonun grafiğini çiziniz.

Solution:

explot('(x^3+7*x)/(x-5)');Code language: JavaScript (javascript)

Çizilen grafik üzerinde Fonksiyon özellikleri ile oynamak için:
Color:Kırmızı için r, yeşil için g, mavi için b , cam göbeği (cyan) için c , sarı için y , siyah için k , beyaz için w ,vs…kullanılır.
LineStyle : Çizgi stili için kesintisiz -, kesinitili – – , noktasal : , kesintili ve noktasal -. , çizgisiz none şeklindedir.
LineWidth: Çizgi boyutu olup sayısal değerler alır.
Marker: İşaretleyici için ise toplama + , çember o , nokta . , kare s, yıldız * , 5 köşeli yıldız p ,elmas d, çarpma x , 6 köşeli yıldız h , işaretsiz none şeklindedir.
MarkerSizer: İşaretçi boyutunu belirler.Sayısal değerler alır.
MarkerEdgeColor: işaretcinin kenar rengidir.
MarkerFaceColor :İşaretcinin iç rengidir.


Matlab’da Explot3 fonksiyonu:

Metin olarak gelen f(x,y,z) biçimindeki kapalı fonksiyonların grafiklerini 3 boyutlu olarak çizmek için kullanılır.Burada x ,y, z bir t gibi parametreye bağlı fonksiyonlardır. Yani x=f(t), y=g(t), z=h(t) gibi fonksiyonlardır.

explot3(‘f(t),g(t),h(t)’) şeklinde
explot3(‘f(t),g(t),h(t),[t min t max]’) şeklindedir.

Example: x=sin(t), y=e^t, z=cos(t) parametrik denklemleri ile verilen 3 boyutlu eğrinin grafiğini [-10π,10π] aralığında çiziniz?

Solution:

explot3('sin(t)','exp(t)','cos(t)',[-10π 10π]); Code language: JavaScript (javascript)

Matlab’da Subplot fonksiyonu:

Subplot(a,b,c): Fonksiyonu ile aynı grafik penceresinden birden fazla eksen oluşturulabilir.Buradaki
a:grafik penceresinin satır sayısını
b:grafik penceresinin sutun sayısını
c:kaçıncı alana çizileceğ belirtilir.


Matlab’da Hold on Fonksiyonu:

Aynı grafikte birden fazla çizim yapılacak ise ilk grafikten sonra hold on komutuyla figure penceresi tutulup diğer grafikler çizdirilir.Başka bir figure geçiş yapılacak ise son çizilen fonksiyondan sonra hold off komutuyla hold on ‘un kapaması yapılır.

Example: Figure penceresi 2 sutun halinde olacak şekilde ilk alanında x^2 siny+y^2 sinx fonksiyonunu rengi siyah ve çizgi boyutu 10 olacak şekilde ,ikinci alanında x^2 cosy+ y^2 cosx
fonksiyonun rengi mavi,çizgi boyutu 5 ve çizgi stili noktasal olacak şekilde çizdiren matlab programını yazınız?

Solution:

subplot(121);
a='(x^2sin(y)+y^2sin(x)';
b=ezplot(a);
set(b,'color','k','linewidth',10);
subplot(122);
c='x^2cos(y)+y^2cos(x)';
d=ezplot(c);
set(d,'color','b','linewidth',5,'linestyle',':');Code language: PHP (php)

Example: Üstteki fonksiyonları aynı grafikte çiziniz. (Hold on İle)

Solution:

a='x^2sin(y)+y^2sin(x)';
b=ezplot(a);
set(b,'color','k','linewidth',10);
hold on;
c='x^2cos(y)+y^2cos(x)';
d=ezplot(c);
set(d,'color','b','linewidth',5,'linestyle',':');Code language: PHP (php)

Matlabda Yüzey Grafikleri

Ezcontour: Seviye grafiği
Ezcontourf: Dolgulu seviye grafiği
Ezsurf: Üç boyutlu yüzey grafiği
Ezsurfc: yüzey grafiği ile seviye grafiği
Ezmesh: Ağ grafiği
Ezmeshc: Ağ grafiği ile seviye grafiği

Example: f=y/(1+x^2+y^2) fonksiyonun figure penceresinde ayrı 4 alanda olacak şekide seviye grafiğini ,dolgulu seviye grafiğini, ağ grafiğini ve yüzey grafiği ile seviye grafiğini çizdiren matlab prog. yazınız.?

Solution:

f='y/(1+x^2+y^2)';
subplot(221);
ezcontour(f);
subplot(222);
ezcontourf(f);
subplot(223);
ezmesh(f);
subplot(224);
ezsurfc(f);Code language: JavaScript (javascript)

Matlab’da Pasta Grafikleri

Pasta grafikleri pie fonksiyonu yardımıyla oluşturulur.

Örneğin;

x=[8,7,9,12,20,35,22];
y=[0,1,1,0,0,0,0];
pie(x,y);
colormap summer; %renk haritası
pasta grafiğini çizdirir.

Burada x değerleri grafiği çizdirecek veriyi,y değeri ise pasta grafiginde vurcu yapılacak değerleri ifade etmektedir. Colormap ifadesi grafikte kullanılacak renk haritasını ifade eder. Matlab da temel renk haritaları; hsv, lines, hot, vga, gray, jet, bone, cool, copper, prism, pink, autumn, white , spring, flag, winter, colorcube, summer şeklindedir.
Her bir pasta diliminin yanında ağırlığı yüzdesi verilmektedir.İstenirse buraya başka bir ifade de yazılabilir:

x=[8,7,9,12,20,35,22];
y=[0,1,1,0,0,0,0];
pie(x,y,{'İstanbul','İzmir','C','D','Edirne','F','G'});Code language: JavaScript (javascript)

Herbir pasta dilimi için açıklama ve yüzde değerini birlikte yazmak istenirse:

x=[8,7,9,12,20,35,22];
y=[0,1,1,0,0,0,0];
p=pie(x,y);
pyazi=findobj(p,'Type','text'); %textalanını alıyoruz
z=get(pyazi,'String');
m={'A:';'B:';'C:';'D:';'E:';'F:';'G:'};  %matrisyaptık
b=strcat(m,z);%iki string birleştirdik
set(pyazi,{'String'},b);
color hsv;Code language: JavaScript (javascript)

Buradaki findobj komutu, grafik nesneler içerisinde belirlenen nitelikleri elde etmek için kullanılır. strcap komutu ise aynı boyutlu iki metni birleştirmek için kullanılır. Matlab’da algoritmalar Level 2 ve Matlab Grafik Çizdirme örneklendirerek tamamlanmıştır.


Not:

Nargin: Giriş yapılan parametre sayısı
Nargout: Çıkış istenilen parametreleri sayısı
Varargin: Giriş yapılan tüm parametre dizisi
Varargout: Çıkış yapılan tüm parametre dizisi


Henüz Bilgisayarınıza Matlab yüklü değil ve denemek istiyosunuz?

Matlab ile benzerlik gösteren ücretsiz Octave kullanabilirsiniz. Matlab’ın alternatifi diye de değerlendirebilirsiniz. Ayrıca browser üzerinden de online olarak Grafik çizdirme yapabilirsiniz.

Temel kısımda eksikleriniz var ise Level1 ‘i inceleyebilirsiniz.

Matlab Algoritmalar Level1

Umarım faydalı bir içerik olmuştur İyi çalışmalar.