MATLAB GRAFİK ARAYÜZÜ (MATLAB GUİ)

Grafik arayüzü geliştirilmeden önce bilgisayarlardaki işlemler konsol ekranında yapılırdı.
Grafik arayüzü gelişmesiyle birlikte konsol ekranından yapacağımız bir çok işlemi button, textbox gibi görsel araçlarla yapabilmemize olanak sağlandı.
Matlab ile ilgili şimdiye kadar yaptığım tüm işlemler konsol ekranından yapılıyordu.
Sonuç olarak bir grafik çıktısı üretsem de matlab gui şimdiye kadar kullanmadım.

Her bir grafik elementin(Push Button, Slider,Radio Button, Check Box, Edit Text, Static Text, Pop-up Menu, Listbox, Toggle Button, Table, Axes, Panel, Button Group, ActiveX Control) bazı özellikleri vardır(Inspector) .
Bu özelliklerinde en önemlisi kullanıcı tarafından oluşturulan girdiye karşılık kod tarafından bir tetikleyici oluşturmasıdır.
İstenildiğinde bu tetikciler çalıştığında bu elementlerin özelliklerinde değişiklik yapılabilinmektedir.

Nasıl ki Türkiye Cumhuriyeti vatandaşı olan her birey benzersiz bir T.C. No verisine sahip ise bu elementler(nesneler)  de benzersiz bir isime sahiptir.
Bu isim kullanarak bu nesnelere istediğiniz değişikliği yapabilirsiniz. başlamadan önce aşağıdaki önceden anlatılmış konulara bakmanız daha faydalı olur: Matlab Değişken Tanımlama Matlab Diziler matlab verileri kaydetme ve erişme matlab string işlemleri matlab fonksiyon çağırma(çalıştırma) matlab çıktı olarak grafik gösterme eğer ve döngü kontrolleri ile program yazma matlabda resim işleme matlab video oluşturma ve okuma
  1. matlab gui açılması:

    Smart PJs Yukarıda  görüldüğü gibi " New > Graphical User Interface "  seçildiğinde veya konsola " guide "  yazıp enter basıldığında " GUIDE Quick Start " ekranı açılmaktadır.
  2. Boş bir GUI oluşturmak:

    Smart PJs OK tıklanarak içi tamamıyla boş olan bir ekran çıkacaktır.
  3. Elementlerin Adlarını görünür yapma:

    Smart PJs Açılan yeni gui ekranından " File > Preferences.. " tıklayarak yukaridaki ekran açılır ve " Show names in component palette " seçili hale getirilir ve ok tıklanır.
  4. Solda bulunan elementleri tutup sürükleyip sağdaki ekranın içine atarak matlab için grafiksel bir arayüz oluşturabilirsiniz.

-Push Button: basıldığında  "ButtonDownFcn" ile button özelliğinden belirtilen "function pushbutton_ButtonDownFcn(hObject, eventdata, handles)" fonksiyonu çalıştırılmaktadır.

- Slider: Kaydırma tuşu olarak kullanılmaktadır.

- Radio Button: Seçim sırasında kullanılmaktadır.

- Check Box: birden fazla seçim için kullanılmaktadır.

- Edit Text: kullanıcıdan klavye verisi almak için kullanılmaktadır.

- Static Text: kullanıcıya yazı göstermek için kullanılmaktadır.

- Pop-up Menu: birden fazla yazı seçeneği tıklandığında açılmaktadır ve bunlar arasında mouse kullanılarak bir seçim yapmak için kullanılmaktadır.

- Listbox: birden fazla yazıyı liste şeklinde göstermek ve bunlara özel işlem yapmak için kullanılmaktadır.

- Toggle Button: button basıldığında veya basılmış button eski haline getirildiğinde çalıştıralacak ayrı fonksiyon çalıştırmak için kullanılmaktadır.

- Table: verileri tablo şeklinde gösterme ve işlem yapmak için kullanılmaktadır.

- Axes: verileri grafik olarak göstermek için kullanılmaktadır.

- Panel: resim eklemek veya özel bir arkaplan oluşturmak için kullanılmaktadır.

- Button Group: radio button ve toggle button tek bir grup altında toplamak için kullanılır.

- ActiveX Control: özel işlemler için kullanılır.

  1. Smart PJs
  2. elementlerin özelliklerinin ayarlandığı ekranın açılması: Smart PJs " View > Property Inspector " tıklanarak yukarıdaki pencere açılır.

Nesne Özellikleri

Smart PJs

 Editor

matlab gui nesnelerin her bir tetikleyicisi bir fonksiyon çalıştırmaktadır. Bu fonksiyonların belli bir formatı bulunmaktadır: function fonksiyonAdı_tetikleyiciAdı(hObject, eventdata, handles)

Get Kullanımı: alinacak_veri = get(nesne,'özellik_adı'); - Set Kullanımı: set(nesne,'özellik_adı', eklenecek_veri); - Set Kullanımı: set(handles.nesne_tag,'özellik_adı', eklenecek_veri);

Gui Nesneleri Anlamak İçin Örnekler

Push Button: bu nesnenin temel özelliği tıklandığında "Callback" ile  belirtilen fonksiyonu çalıştırmasıdır. Fonksiyon çalıştığında "Fonksiyon Çalıştı..." mesajını vermesini sağlayalım.

 function pushbutton1_Callback(hObject, eventdata, handles)
     msgbox('Fonksiyon Çalıştı...','Bilgilendirme Mesajı');

Slider: aşağıdaki kodu Command Window ekranına yapıştırıp Enter basınız. Önceden oluşturulmuş örnek çıkacaktır.

 copyfile(fullfile(docroot, 'techdoc','creating_guis','examples',...
'globegui*.*')), fileattrib('globegui*.*', '+w')
guide globegui.fig

Radio Button: tıklandığında hangi radio button tıklandığı mesajı vermesini sağlayalım. iki radio button olsun hangisi tıklanırsa onun adı mesaj olarak göstersin.  iki tane Radio Button ekliyoruz. Inspector(Özellik) ekranından radiobutton1, birinci_radiobutton ve radiobutton2  ikinci_radiobutton olarak değiştirelim. Callback tıklayarak radiobutton değiştirildiğindeki tetikleyici fonksiyonu açınız. birinci_radiobutton Callback fonksiyonu şu şekilde yazılmalıdır:

function birinci_radiobutton_Callback(hObject, eventdata, handles)
 tiklandi_mi = get(hObject,'value');
  if tiklandi_mi == 1
   msgbox('Birinci Seçildi');
   set(handles.ikinci_radiobutton,'value',0);
  end
ikinci_radiobutton Callback fonksiyonu şu şekilde yazılmalıdır:
function ikinci_radiobutton_Callback(hObject, eventdata, handles)
 tiklandi_mi = get(hObject,'value');
  if tiklandi_mi == 1
    msgbox('İkinci Seçildi');
    set(handles.birinci_radiobutton,'value',0);
  end

Check Box: tıklandığında hangi check box secildiğnde seçildi ve seçim kaldırıldığında seçim kaldırıldı mesajı verelim.iki checkbox olsun hangisi tıklanırsa onun adı mesaj olarak göstersin. iki tane Check Box ekliyoruz. Inspector(Özellik) ekranından checkbox1, birinci_checkbox ve checkbox2 ikinci_checkbox olarak değiştirelim. Callback tıklayarak Check Box değiştirildiğindeki tetikleyici fonksiyonu açınız. birinci_checkbox Callback fonksiyonu şu şekilde yazılmalıdır:

 function checkbox1_Callback(hObject, eventdata, handles)
 tiklandi_mi = get(hObject,'value');
   if tiklandi_mi == 1
    msgbox('Birinci Seçildi');
   else
    msgbox('Birinci Seçim Kaldırıldı');
   end
    ikinci_checkbox Callback fonksiyonu şu şekilde yazılmalıdır:
   function checkbox2_Callback(hObject, eventdata, handles)
     tiklandi_mi = get(hObject,'value');
   if tiklandi_mi == 1
     msgbox('İkinci Seçildi');
   else
    msgbox('İkinci Seçim Kaldırıldı');
   end

Edit Text ve Static Text: edit text yazılan yazıyı static text yazdıran bir örnek yapalım. bir Edit Text ve Static Text ekleyelim Edit Text Callback tıklayarak aşağıdaki fonksiyonu oluşturalım:

function edit1_Callback(hObject, eventdata, handles)
girdi= get(hObject,'String');
set(handles.text1,'String',girdi);

Pop-up Menu: her tıklandığında tıklanan mesaj olarak gösteren ve Murat DELEN item ekleyen bir fonksiyon şu şekildedir(Pop-up Menu eklenir ve Callback tıklanır):

function popupmenu1_Callback(hObject, eventdata, handles) 
tum_menu = get(hObject,'String'); secilen_index = get(hObject,'Value'); 
item_selected = tum_menu{secilen_index}; 
tum_menu{secilen_index} = [item_selected,' SEÇİLDİ']; 
tum_menu = [tum_menu;'Murat DELEN']; 
set(hObject,'String',tum_menu) msgbox(item_selected);

Listbox: listbox ilk oluşturulduğunda yedi tane item ekleyeceğiz. seçilen item silinecek ve bunun bilgisini gösteren bir fonksiyon şu şekildedir:

function listbox1_CreateFcn(hObject, eventdata, handles)
tum_menu = {'Birinci' 'İkinci' 'Üçüncü' 'Dördüncü' 'Beşinci' 'Altıncı' 'Yedinci'};
set(hObject,'String',tum_menu);
function listbox1_Callback(hObject, eventdata, handles)
tum_menu = get(hObject,'String');
secilen_index = get(hObject,'Value');
item_selected = tum_menu{secilen_index};
tum_menu(secilen_index) = []
  % Aşağıdaki kodu ile seçilen item değiştirilebilmektedir.
  % tum_menu{secilen_index} = [item_selected,' SEÇİLDİ'];
  % Value değeri ayarlanmadığında en son değer kalır 
  % ama olmadığında hata verir. bu hatayı gidermek için 'Value',1);
  % kodu yazılarak düzeltilir
set(hObject,'String',tum_menu,'Value',1);
msgbox([item_selected,' Silindi ...']);

Toggle Button: aktif hale getirildğinde "AKTİFTİR"  ve pasif hale getirildiğinde "PASİFTİR" mesajını veren fonksiyon şöyledir:

function togglebutton1_Callback(hObject, eventdata, handles)
durum = get(hObject,'Value');
  if durum == get(hObject,'Max')
msgbox('AKTİFTİR');
  elseif durum == get(hObject,'Min')
msgbox('PASİFTİR');
  end

Table: ilk yaratıldığında  bazı veriler ekleyelim(get ile veriler dizi olarak alınabilir ve set ile veriler diziden aktarılabilir.)

function uitable1_CreateFcn(hObject, eventdata, handles)
veriler = {'Birinci' 'İkinci' 'Üçüncü';'Dördüncü' 'Beşinci' 'Altıncı'};
set(hObject,'Data',veriler);

Axes: yaratılan grafikte tıklanan koordinatları gösteren fonksiyon şu şekildedir:

function axes1_ButtonDownFcn(hObject, eventdata, handles)
pt = get(hObject,'CurrentPoint')
msgbox(int2str(pt));

Panel: statik bir görüntü sağlar. tıklandığında mesaj gösteren fonksiyon:

function uipanel1_ButtonDownFcn(hObject, eventdata, handles)
msgbox('panel tıklandı');

Button Group: Birden fazla radio veya toggle button olduğunda tek bir tane seçilmesini sağlamaktadır. bir tane Button Group ekleyip üzerine iki tane Radio Button ve Toggle Button  ekleyelim ve tıklananı mesaj olarak gösteren fonksiyon şu şekildedir(fonksiyona aşağıdaki resimdeki gibi erişebilirsiniz): button group

function uipanel1_SelectionChangeFcn(hObject, eventdata, handles)
  switch get(eventdata.NewValue,'Tag') % Get Tag of selected object.
  case 'radiobutton1'
msgbox('Radio button1 seçildi...');
  case 'radiobutton2'
msgbox('Radio button2 seçildi...');
  case 'togglebutton1'
msgbox('Toggle button1 seçildi...');
  case 'togglebutton2'
msgbox('Toggle button2 seçildi...');
  end

ActiveX Control: örnek için tıklayınız.

kod

Verileri sabit diske kaydetme ve okuma: bir listbox içerisindeki verileri kapandığında kaydetmek ve açıldığında verileri tekrar yüklemek için bu fonksiyonlar kullanılır:

function figure1_CloseRequestFcn(hObject, eventdata, handles)
  kaydetme.list = get(handles.listbox1,'string');
  save('veriler.mat','kaydetme');
function listbox1_CreateFcn(hObject, eventdata, handles)
  load('veriler.mat');
  set(hObject,'string',kaydetme.list);

Matlab hazır örnekleri için tıklayınız.serdar hocanın biyomekanik notları serdar hocanın Spor Biyomekanik notları matlab gui yaratılması ile ilgili video matlab gui ile ilgili videolar matlab gui ile ilgili videolar bazı örnekler Türkçe kaynak

barcode
Destek İçin Buradaki Reklamları Tıklayabilirsiniz.
Destek İçin Buradaki Reklamları Tıklayabilirsiniz.

Ses Kontrolleri

Tam Ekran Yap