posts - 195, comments - 34, trackbacks - 0, articles - 1

          zz:對MATLAB 的GUI編程的一些體會

          Posted on 2007-06-21 23:12 小強摩羯座 閱讀(761) 評論(2)  編輯  收藏 所屬分類: matalb相關
           
          對MATLAB 的GUI編程的一些體會
          2006-05-01 09:10:50
          用MATLAB的GUIDE進行圖像界面的編程是非常簡單的。在這里唐僧幾句,學習MATLAB最好的資料是MATLAB自帶的幫助文檔。這個,王星焱跟我說過好多次了,其實其他的好多軟件都是這樣的。不過我的自學能力差一些。在去年暑假在合肥電院實習的時候,手邊什么書都沒有,沒有辦法,只好硬著頭皮看MATLAB幫助文檔。雖然是e文的,但是還是能看懂的,在金山詞霸的幫助下。
           
          所以,關于GUI的入門,就交給MATLAB的幫助文檔了。下面說說更進一步的東西,面向的讀者,是已經入門的。關于GUI,我認為,如果變出一個能用的像樣的東西,一是菜單,二是控件。
           
          菜單很簡單,就是弄清除菜單之間的關系就可以了。我沒有做過菜單,但是相信用到的時候肯定會做。
           
          控件的使用,主要是用好CreateFcn,Callback。用好這兩個,一般的程序就能編了。CreateFcn中的語句就是在程序運行時,就立即執行的script。如果是編很簡單的,不需要復雜可控的交互的程序,這個就夠了。但是如果說是希望界面可控,那么最好用callback。在相應控件下,添加相應的script就可以實現比較復雜的功能了。下面,舉幾個我整理的常用的控件的callback:
           
          1可編輯文本框:
          讀入數據:
          val=str2num(get(handles.edit1,'string'));
          顯示數據:
          set(handles.edit1,'string',num2str(get(handles.slider1,'value')));
          這條命令,把滑塊的值顯示出來。如果想顯示其他變量,把num2str(get(handles.slider1,'value'))改成該變量即可。
          2滑條:
          set(handles.slider1,'value',val)
          這條命令把變量val的值顯示出來。
          注意滑條需要設定min和max兩個屬性。
          3button,這個最常用,在button的callback中直接寫入程序即可。
           
          昨天晚上,北大的辛誠讓我幫他算道積分,用matlab進行數值積分,其實也挺方便的。
          第一句命令:syms a b x
          第二句命令:int(x^a*exp(-x)*(cos(b*x)-sin(b*x))/b,x,0,inf)
          然后就會得到結果。想用maple驗證一下,結果maple沒有給出結果。郁悶。看來是自己maple學的不好。
           
          剛才用maple算出來了,呵呵,用命令int(x^a*exp(-x)*(cos(b*x)-sin(b*x))/b,x=0..infinity);看來還是自己學藝不精啊!在數值方面,還是maple強那么一點點,呵呵。
          積分結果是:
          2^a*b^(-a-2)*(Pi^(1/2)*GAMMA(1/2+1/2*a)*(1/b^2+1)^(-1/2*a-1/2)*cos(2*(1/2+1/2*a)*arctan(1/b))/GAMMA(-1/2*a)-2*Pi^(1/2)*(1/b^2+1)^(-1-1/2*a)*cos(a*arctan(1/b))*GAMMA(1+1/2*a)/(b*(1+a)*GAMMA(-1/2*a-1/2))-2*Pi^(1/2)*(1/b^2+1)^(-1-1/2*a)*sin(a*arctan(1/b))*GAMMA(1+1/2*a)/((1+a)*GAMMA(-1/2*a-1/2)))-2^a*b^(-a-2)*(Pi^(1/2)*GAMMA(1+1/2*a)*(1/b^2+1)^(-1/2*a-1/2)*cos(2*(1/2+1/2*a)*arctan(1/b))/GAMMA(-1/2*a+1/2)-2*Pi^(1/2)*(1/b^2+1)^(-1-1/2*a)*cos(a*arctan(1/b))*GAMMA(3/2+1/2*a)/(b*(1+a)*GAMMA(-1/2*a))-2*Pi^(1/2)*(1/b^2+1)^(-1-1/2*a)*sin(a*arctan(1/b))*GAMMA(3/2+1/2*a)/((1+a)*GAMMA(-1/2*a)))


          Feedback

          # 請教  回復  更多評論   

          2009-05-02 08:24 by 月亮島情緣
          請教一下,為何我在R2007下編的GUI在R2008B確不能使用?
          如果能正常使用呢?
          盼復,謝!

          # 請教  回復  更多評論   

          2009-05-02 08:25 by 月亮島情緣
          532548183@qq.com
          謝!
          主站蜘蛛池模板: 小金县| 汾阳市| 岗巴县| 莆田市| 凤庆县| 安福县| 霍城县| 普兰店市| 嘉禾县| 广元市| 赤城县| 大英县| 安顺市| 萨嘎县| 香格里拉县| 宁陕县| 九台市| 彰化市| 永善县| 临夏县| 黔江区| 孟津县| 讷河市| 梅河口市| 逊克县| 吉木乃县| 孝昌县| 浙江省| 南澳县| 张家口市| 佛山市| 兰溪市| 梧州市| 潼关县| 绩溪县| 平乐县| 靖西县| 浏阳市| 隆子县| 务川| 右玉县|