Soru sorMatlab GUI'de girilen 2 fonksiyonun toplanması
Tolga tarafından 7 yıl önce soruldu

Matlab GUI'de girilen 2 fonksiyonun toplanması komutunu nasıl yazabirim?

7 Cevap
ekremt Yönetici tarafından 7 yıl önce cevaplandı

Matlab GUI'de 2 fonksiyon toplamı derken tam olarak neyi ifade etmek istediniz ?
GUI'de girmiş olduğunuz değerleri toplamaktan bahsediyorsanız farklı, aldığınız değerleri dışarıda iki farklı fonksiyona yollayıp o fonksiyonlardan sonuç alıp toplamak isterseniz farklı olur. Daha doğrusu fark derken bir tanesi kendi içinde işleme tabii tutulması gerek diğeri ise daha uzun bir çözüm yoluna gidilir
 

Tolga tarafından 7 yıl önce cevaplandı

GUI'de girmiş olduğum değerleri toplamaktan bahsediyorum. Mesela edit1 ve edit2'ye girilen fonksiyonları butona basarak edit3'te gözükmesi olayı.

ekremt Yönetici tarafından 7 yıl önce cevaplandı
function teta1_Callback(hObject, eventdata, handles)
% hObject handle to teta1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of teta1 as text
% str2double(get(hObject,'String')) returns contents of teta1 as a double
handles.t1 = get(handles.teta1, 'string');
guidata(hObject, handles);

Bu benim başka bir projede kullandığım şekli. Tabii her iki edit için koyamadım buraya

% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

handles.text17 = handles.t1 + handles.t2;
set(handles.text17, 'string');

guidata(hObject, handles);

Öncelikle mantığını anlatayım sorunuz olursa yardımcı olurum. Öncelikle ilk olarak edit1 ve edit2'den benim kodumda textbox vardı oradaki dataları "get(handles.teta1, 'string');" mantığı ile string olarak almıştım. "guidata(hObject, handles);" yapmanız ile aldığınız ve vereceğiniz dataları bütün GUI içinde aktif hale getirebilirsiniz. Daha sonra butonun altındaki komuta gelince toplama işlemi yapıp ardından "set(handles.text17, 'string');" ile yazabilirsiniz.
Siz nümerik çalışacak olabilirsiniz bu sebeple string ifadeleri size yönelik olmayabilir. Sadece yol göstermek adına kendi programımdaki kod parçalarından size yardımcı olması adına örnek kısımları aldım.

Tolga tarafından 7 yıl önce cevaplandı

Teşekkürler fakat ben acemi olduğum için anlayamadım. Yani 2 tane herhangi bir fonksiyonun işlemini yapan bir (mesela 2*sinx ve 3*cosx fonksiyonları bunları matlab guide)kod nasıl yazabilirim yani bunun bir temel kodu varmı onu bilmek istedim.

ekremt Yönetici tarafından 7 yıl önce cevaplandı

Merhaba öncelikle yapmış olduğunuz çalışmaları ve kod parçalarını görsel olarak ekleme şansınız olursa görseller üzerinden de yardımcı olmaya çalışabilirim. 
Daha sonra size bir örnek olması adına örneğin bir dizide bulunan elemanları toplamak adına "sum" komutu vardır. Bu bir hazır fonksiyondur ve bu bizlere kolaylık olması adına ortaya çıkmıştır.
>> a = [2 2]
a =
2 2
>> sum(a)
ans =
4
 
Burada örnek olması adına komutu ve çıktısını belirttim. Bu komutu her zaman kullanmak zorunda değilsiniz. İsterseniz tek tek uzun yoldan bütün sayıları toplayabilirsiniz. 
GUI kısmı da MATLAB programı altında çalışan ek bir paket olarak düşünebilirsiniz. Bu yüzden MATLAB programı içinde yapabildiğiniz bir çok işlemi yapabilir ve yapamadığınız görsel işlemleri GUI programında yapabilirsiniz. 
Konuyu sorunuza bağlarsam; 
Sormuş olduğunuz gibi bir şekilde işleme dair hazır fonksiyon olduğunu düşünmüyorum. Fakat bulursanız ve buraya belirtirseniz ben de öğrenmiş olurum. 
Neden hazır bir fonksiyon olmadığına dair düşüncemi de açıklarsam sizin belirtmiş olduğunuz gibi bir örnek çoğaltılabilir "5*sin(x)-cos(x)" ve bu sefer her bir durum için özel bir komut ortaya çıkarılması gerekir diye düşünüyorum. Fakat size bahsettiğim gibi GUI arayüzünde kullanıcı tarafından girilen bir x değerini alıp, butona basınca "5*sin(x)-cos(x)" işlemini yapabilirsiniz.
Umarım açıklayıcı olmuştur. Aklınıza takılan bir soru olursa elimden geldiğince açıklamaya çalışabilirim.

Tolga tarafından 7 yıl önce cevaplandı

İlla da cosx veya sinx olacak diye birşeyde yok x^2 vb. gibi olabilir hani toplama işleminin kodunu yazabilsem iş bitecek fakat sadece 2 tane normal sayının toplanması grafiğini yazıyorum onlarında grafiği yok yani x^2 ile x^3'ün toplamı gibi basit fonksiyon toplama kodu arıyorum ama bir türlü bulamadım.

ekremt Yönetici tarafından 7 yıl önce cevaplandı

Öncelikle şunu belirtmek isterim gibi bu beklediğiniz işlemleri siz zaten GUI üzerinde kendiniz ayarlamanız gerekmektedir. Benim ilk verdiğim cevabı incelerseniz bunu fark edeceksiniz. Öncelikle GUI'de çalışma yapmanız için bir arayüz tasarımı yapıp kaydetmeniz gerekmektedir. Daha sonra da kaydettiğiniz zaman MATLAB ekranında GUI ile ilgili gerekli kod kısımları oluşacaktır. Siz de örneğin textbox'a veya editbox'a bir değer girilmesini ardından butona basınca messagebox ile istediğiniz işlemin sonucunu yapıp orada gösterebilirsiniz.
Bu sebeple size tavsiyem öncelikle arayüzü hazırlayıp değerleri yazıp gösterme kısmını denemeniz.
Kodu ve arayüzü tasarlamak isterdim fakat Şuan yoğunluğum sebebiyle metin yoluyla elimden gelen yardımı yapmaya çalışırım. Bir sorunuz olursa çekinmeden sorun