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
-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.
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);
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):
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