Aylık arşivler: Mayıs 2014

Matlab GUI – Grafikçi v2.0

OSMANGAZİ ÜNİVERSİTESİ MATEMATİK BİLGİSAYAR BÖLÜMÜ, TBT-2 DERSİ 2014 FİNAL SINAV SORUSUDUR.

matlab_grafikci_Soru

açılışta çalışacak kodlar :


function final_1_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;
axes(handles.axes1);
handles.sayi=2;
handles.renk='r';
handles.cizgi='-';
set(handles.axes1,'visible','off');
set(handles.figure1,'name','Grafikçi');
set(handles.uipanel1,'title','Çizgi Özellikleri');
set(handles.text1,'String','Çizgi Kalınlığı:');
set(handles.text2,'String','MATLAB Grafikçi Versiyon 2.0','fontsize',30);
set(handles.popupmenu1,'String',{'Çizgi Stili Seçiniz','-','--','-.',':'});
set(handles.pushbutton1,'string','Renk Seçiniz');
set(handles.pushbutton2,'string','2D Grafik');
set(handles.pushbutton3,'string','3D Grafik');
set(handles.edit1,'string','2');
guidata(hObject, handles);

2D GRAFİK ÇİZ BUTONU :

function pushbutton2_Callback(hObject, eventdata, handles)
a={'Çizilecek Grafik','Min-Deger','Max-Deger'};
b='2 Boyut';
c=[1,1,1];
d={'sin(x)','-10','10'};
f=inputdlg(a,b,c,d);
axes(handles.axes1);
handles.grafik=ezplot(f{1},[str2double(f{2}),str2double(f{3})]);
set(handles.grafik,'color',handles.renk,'Linewidth',handles.sayi,'Linestyle',handles.cizgi);
set(handles.text2,'visible','off');
set(handles.axes1,'visible','on');
guidata(hObject,handles);

3D GRAFİK ÇİZ BUTONU :

function pushbutton3_Callback(hObject, eventdata, handles)
x={'1.Parametre','2.Parametre','3.Parametre','Min-Deger','Max-Deger'};
y='3 Boyut';
z=[1,1,1,1,1];
t={'sin(x)','cos(x)','tan(x)','-10','10'};
h=inputdlg(x,y,z,t);
handles.grafik=ezplot3(h{1},h{2},h{3},[str2double(h{4}),str2double(h{5})]);
set(handles.text2,'visible','off');
set(handles.grafik,'color',handles.renk,'Linewidth',handles.sayi,'Linestyle',handles.cizgi);
guidata(hObject,handles);

RENK SEÇ BUTONU :

function pushbutton1_Callback(hObject, eventdata, handles)
rengim=uisetcolor;
handles.renk=rengim;
set(handles.grafik,'color',handles.renk);
guidata(hObject,handles);

ÇİZGİ STİLİ SEÇİNİZ :

function popupmenu1_Callback(hObject, eventdata, handles)
a=get(hObject,'value');
b=get(hObject,'string');
switch a
    case 1
    case 2
        handles.cizgi='--';
        set(handles.grafik,'Linestyle',handles.cizgi);
    case 3
        handles.cizgi='-';
        set(handles.grafik,'Linestyle',handles.cizgi);
    case 4
        handles.cizgi='-.';
        set(handles.grafik,'Linestyle',handles.cizgi);
    case 5
        handles.cizgi=':';
        set(handles.grafik,'Linestyle',handles.cizgi);
end
guidata(hObject,handles);

ÇİZGİ KALINLIĞI KUTUSU :

e=get(hObject,'string');
handles.yazi=str2num(e);
if (handles.yazi<1 | handles.yazi>5)
    errordlg('Çizgi kalınlığı 1 ile 5 arasında olabilir.','Hata','modal');
else
set(handles.grafik,'linewidth',handles.yazi);
end
guidata(hObject,handles);

Soruyu çözüp bizlere ilettiği için ATAKAN AYNALI’ya Teşekürler..

MUHAMMET ÇAĞATAY
YARARLI OLMASI DİLEĞİ İLE…

Matlab GUI – 3×3 yap-boz oyunu

3x3_yap_boz

açılışta çalışacak kodlar :


handles.output = hObject;

handles.kutular={handles.p1,handles.p2,handles.p3,handles.p4...
    handles.p5,handles.p6,handles.p7,handles.p8,handles.p9};

handles.etiket={'1','2','3','4','5','6','7','8',''};

karistir(handles.kutular,handles.etiket);

handles.sayi=0;

set(handles.pushbutton12,'visible','off');

guidata(hObject, handles);

Karıştır fonksiyonu :

function karistir(kutular,etiket)
index=randperm(8);
for i=1:8
    %set(kutular{i},'String',etiket{i});
    set(kutular{i},'String',index(i));
end

yeni oyun kodları :

function pushbutton10_Callback(hObject, eventdata, handles)
karistir(handles.kutular,handles.etiket);
handles.sayi=0;
set(handles.text1,'string',handles.sayi);
set(handles.p9,'string','');
guidata(hObject,handles);

kapat tuşu :

function pushbutton11_Callback(hObject, eventdata, handles)
delete(gcf);

bitir tusu kodlari :


bit=1;
for k=1:8
    if (get(handles.kutular{k},'string')~=handles.etiket{k})
        bit=0;
        break;
    end
end
if bit==1
    setappdata(0,'bitirdin',handles.sayi);
    delete(handles.figure1);
    untitled1('untitled',handles.figure1);
end

button1 kodları :

function p1_Callback(hObject, eventdata, handles)
if(isempty(get(handles.p2,'string')));
    set(handles.p2,'string',get(handles.p1,'string'));
    set(handles.p1,'string','');
    handles.sayi=handles.sayi+1;
    set(handles.text1,'string',handles.sayi);
elseif(isempty(get(handles.p4,'string')));
    set(handles.p4,'string',get(handles.p1,'string'));
    set(handles.p1,'string','');
    handles.sayi=handles.sayi+1;
    set(handles.text1,'string',handles.sayi);
end

button4 kodları :

function p4_Callback(hObject, eventdata, handles)
if(isempty(get(handles.p1,'string')));
    set(handles.p1,'string',get(handles.p4,'string'));
    set(handles.p4,'string','');
    handles.sayi=handles.sayi+1;
    set(handles.text1,'string',handles.sayi);
elseif(isempty(get(handles.p5,'string')));
    set(handles.p5,'string',get(handles.p4,'string'));
    set(handles.p4,'string','');
    handles.sayi=handles.sayi+1;
    set(handles.text1,'string',handles.sayi);
elseif(isempty(get(handles.p7,'string')));
    set(handles.p7,'string',get(handles.p4,'string'));
    set(handles.p4,'string','');
    handles.sayi=handles.sayi+1;
    set(handles.text1,'string',handles.sayi);
end

diğer button kodları :


function p5_Callback(hObject, eventdata, handles)
if(isempty(get(handles.p2,'string')));
    set(handles.p2,'string',get(handles.p5,'string'));
    set(handles.p5,'string','');
    handles.sayi=handles.sayi+1;
    set(handles.text1,'string',handles.sayi);
elseif(isempty(get(handles.p4,'string')));
    set(handles.p4,'string',get(handles.p5,'string'));
    set(handles.p5,'string','');
    handles.sayi=handles.sayi+1;
    set(handles.text1,'string',handles.sayi);
elseif(isempty(get(handles.p6,'string')));
    set(handles.p6,'string',get(handles.p5,'string'));
    set(handles.p5,'string','');
    handles.sayi=handles.sayi+1;
    set(handles.text1,'string',handles.sayi);
    elseif(isempty(get(handles.p8,'string')));
    set(handles.p8,'string',get(handles.p5,'string'));
    set(handles.p5,'string','');
    handles.sayi=handles.sayi+1;
    set(handles.text1,'string',handles.sayi);
end

function p6_Callback(hObject, eventdata, handles)
if(isempty(get(handles.p3,'string')));
    set(handles.p3,'string',get(handles.p6,'string'));
    set(handles.p6,'string','');
    handles.sayi=handles.sayi+1;
    set(handles.text1,'string',handles.sayi);
elseif(isempty(get(handles.p5,'string')));
    set(handles.p5,'string',get(handles.p6,'string'));
    set(handles.p6,'string','');
    handles.sayi=handles.sayi+1;
    set(handles.text1,'string',handles.sayi);
elseif(isempty(get(handles.p9,'string')));
    set(handles.p9,'string',get(handles.p6,'string'));
    set(handles.p6,'string','');
    handles.sayi=handles.sayi+1;
    set(handles.text1,'string',handles.sayi);
end



style="display:inline-block;width:300px;height:250px"
data-ad-client="ca-pub-9200726489451170"
data-ad-slot="7842935248">

Matlab GUI – Butona sol ve sağ tıklayınca eksendeki resimlerin değişmesi olayı

1

3

2

 
PROGRAM TARAFINDAN OLUŞTURULAN KODLAR :

 
 

function varargout = arka(varargin)

gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @arka_OpeningFcn, ...
                   'gui_OutputFcn',  @arka_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end

function arka_OpeningFcn(hObject, eventdata, handles, varargin)

function varargout = arka_OutputFcn(hObject, eventdata, handles) 

varargout{1} = handles.output;

 
BUTONA YAZDIĞIMIZ KODLAR :

 
 


function pushbutton1_Callback(hObject, eventdata, handles)
resim=imread('bil.jpg');

axes(handles.axes1);
image(resim);


function pushbutton1_ButtonDownFcn(hObject, eventdata, handles)
resim=imread('mat.jpg');

axes(handles.axes1)
image(resim);

 
Yararlı olması dileği ile, Muhammet ÇAĞATAY

Matlab GUI – Radiobutton ve Listbox ile grafiğin biçimini değiştirmek

ÖNCE FORM OLUŞTURULUR, DİKKAT EDİLMESİ GEREKEN HUSUS; RAİOBUTTONLAR, BUTTONGROUP NESNESİ İÇİNE KONMALIDIR.

1
KISIM 1 ( OTOMATIK OLUŞUR ) :

function varargout = sekilli_frafik(varargin)

gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @sekilli_frafik_OpeningFcn, ...
                   'gui_OutputFcn',  @sekilli_frafik_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end

KISIM 2 ( İLK AÇILDIĞINDA OLUŞAN OLAYLAR İÇİN KENDİMİZ YAZIYORUZ ) :


function sekilli_frafik_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;
x=-3*pi:pi/2:3*pi;
axes(handles.axes1);
handles.grafik=plot(sin(x));

guidata(hObject, handles);

function varargout = sekilli_frafik_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;

KISIM 3 ( ANA KODLARIMIZ ) :


function uipanel1_SelectionChangeFcn(hObject, eventdata, handles)
switch get(hObject,'Tag')
    case 'radiobutton1'
        set(handles.grafik,'color','r')
    case 'radiobutton2'
        set(handles.grafik,'Color','g')
    case'radiobutton3'
        set(handles.grafik,'Color','b')
end

function slider1_Callback(hObject, eventdata, handles)

if(get(hObject,'Value')==0)
set(handles.grafik,'LineWidth',1)
else
      set(handles.grafik,'LineWidth',get(hObject,'Value'));
end

function togglebutton4_Callback(hObject, eventdata, handles)
if(get(handles.togglebutton4,'Value')==get(hObject,'Max'))
set(handles.grafik,'Marker','d')
else
   set(handles.grafik,'Marker','s')
end

function listbox1_Callback(hObject, eventdata, handles)
if(get(handles.listbox1,'Value')==1)
    set(handles.grafik,'LineStyle',':')
elseif(get(handles.listbox1,'Value')==2)
    set(handles.grafik,'LineStyle','--')
elseif(get(handles.listbox1,'Value')==3)
    set(handles.grafik,'LineStyle','-.')
end

PROGRAMIN SON HALİ :
2

Yararlı olması dileği ile, Muhammet ÇAĞATAY

Matlab GUI – Popupmenu’den seçilen grafiği eksene çizdirmek

önce aşağıdaki form oluşturulur :

1

bu kodlar derleyici tarafından otomatik yazılır :


function varargout = Grafikkkk(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @Grafikkkk_OpeningFcn, ...
                   'gui_OutputFcn',  @Grafikkkk_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end

function Grafikkkk_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;

guidata(hObject, handles);

function varargout = Grafikkkk_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;

sonra popupmanu callback olayına aşağıdaki kodlar yazılır :


function popupmenu1_Callback(hObject, eventdata, handles)

yazi1=get(handles.edit1,'String');
yazi2=get(handles.edit2,'String');
yazi3=get(handles.edit3,'String');
baslangic=str2num(yazi1);
bitis=str2num(yazi2);
artis=str2num(yazi3);
x=baslangic:artis:bitis;

    if(get(handles.popupmenu1,'Value')==1)
        y=sin(x);
        plot(x,y);
    elseif(get(handles.popupmenu1,'Value')==2)
        y=cos(x);
        plot(x,y);
    elseif(get(handles.popupmenu1,'Value')==3)
        y=log10(x);
        plot(y);
    elseif(get(handles.popupmenu1,'Value')==4)
        y=tan(x);
        plot(x,y);
    elseif(get(handles.popupmenu1,'Value')==5)
        y=cot(x);
        plot(x,y);
end

uygulamanın son hali :

2
yararlı olması dileği ile, Muhammet ÇAĞATAY

Matlab GUI – Eksene radiobuttondan seçilen resmi çizdirmek

öncelikle aşağıdaki form oluşturulur :
1

Bu kodları editör kendi oluşturur :


function varargout = resim_gosterme(varargin)

gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @resim_gosterme_OpeningFcn, ...
                   'gui_OutputFcn',  @resim_gosterme_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
    function resim_gosterme_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;

guidata(hObject, handles);

function varargout = resim_gosterme_OutputFcn(hObject, eventdata, handles)

varargout{1} = handles.output;

Daha sonra bu kodları kendimiz yazıyoruz, ben uygulamada 3 tane resim kullandım ve çalışma klasörümde durmaktadır. resimlerin isimleri analiz.jpg, geometri.jpg ve matematik.jpg dir. ayrıca ben butonumun tagını btn_ciz olarak değiştirdim. bunları dikkate almanızı öneririm.

function btn_ciz_Callback(hObject, eventdata, handles)

     if (get(handles.radiobutton1,'Value')==1)
        resim=imread('analiz.jpg');
        axes(handles.axes1);
        image(resim);

     elseif(get(handles.radiobutton2,'Value')==1)
       resim=imread('geometri.jpg');
       axes(handles.axes1);
       image(resim);

    elseif(get(handles.radiobutton3,'Value')==1)
       resim=imread('matematik.jpg');
       axes(handles.axes1);
       image(resim);
     end

    set(handles.axes1,'XTick',[]);
    set(handles.axes1,'YTick',[]);
  

Uygulamamızın son hali :

2
Yararlı olması dileği ile,
Muhammet ÇAĞATAY

Matlab GUI – Hesap Makinası Yapımı

Önce Gui başlatıp Şekildeki formu oluşturun

1

 

 

daha sonra buttonlara ilgili kodları yazmanız yeterli olacaktır.
 

bu kodlar zaten matlab editörü tarafından oluşturulur.
 
 
 

function varargout = hesap_makinasi2(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @hesap_makinasi2_OpeningFcn, ...
                   'gui_OutputFcn',  @hesap_makinasi2_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end


function hesap_makinasi2_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;


guidata(hObject, handles);


function varargout = hesap_makinasi2_OutputFcn(hObject, eventdata, handles) 
varargout{1} = handles.output;

 
 
sizin yazmanız gereken kodlar :

function btn_topla_Callback(hObject, eventdata, handles)
yazi1=get(handles.edit1,'String');
yazi2=get(handles.edit2,'String');
sayi1=str2num(yazi1);
sayi2=str2num(yazi2);
toplam=sayi1+sayi2;
set(handles.edit3,'String',toplam);



function btn_cikar_Callback(hObject, eventdata, handles)
yazi1=get(handles.edit1,'String');
yazi2=get(handles.edit2,'String');
sayi1=str2num(yazi1);
sayi2=str2num(yazi2);
fark=sayi1-sayi2;
set(handles.edit3,'String',fark);



function btn_carpma_Callback(hObject, eventdata, handles)
yazi1=get(handles.edit1,'String');
yazi2=get(handles.edit2,'String');
sayi1=str2num(yazi1);
sayi2=str2num(yazi2);
carpim=sayi1*sayi2;
set(handles.edit3,'String',carpim);



function btn_bolme_Callback(hObject, eventdata, handles)
yazi1=get(handles.edit1,'String');
yazi2=get(handles.edit2,'String');
sayi1=str2num(yazi1);
sayi2=str2num(yazi2);
bolum=sayi1/sayi2;
set(handles.edit3,'String',bolum);


 
uygulamanızın son hali :
 
2

 
 
yararlı olması dileği ile
 
Muhammet ÇAĞATAY