Etiket arşivi: matlab gui examples

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 – 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