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

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

          Posted on 2007-06-21 23:12 小強摩羯座 閱讀(754) 評論(2)  編輯  收藏 所屬分類: matalb相關
           
          對MATLAB 的GUI編程的一些體會
          2006-05-01 09:10:50
          用MATLAB的GUIDE進行圖像界面的編程是非常簡單的。在這里唐僧幾句,學習MATLAB最好的資料是MATLAB自帶的幫助文檔。這個,王星焱跟我說過好多次了,其實其他的好多軟件都是這樣的。不過我的自學能力差一些。在去年暑假在合肥電院實習的時候,手邊什么書都沒有,沒有辦法,只好硬著頭皮看MATLAB幫助文檔。雖然是e文的,但是還是能看懂的,在金山詞霸的幫助下。
           
          所以,關于GUI的入門,就交給MATLAB的幫助文檔了。下面說說更進一步的東西,面向的讀者,是已經入門的。關于GUI,我認為,如果變出一個能用的像樣的東西,一是菜單,二是控件。
           
          菜單很簡單,就是弄清除菜單之間的關系就可以了。我沒有做過菜單,但是相信用到的時候肯定會做。
           
          控件的使用,主要是用好CreateFcn,Callback。用好這兩個,一般的程序就能編了。CreateFcn中的語句就是在程序運行時,就立即執(zhí)行的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中直接寫入程序即可。
           
          昨天晚上,北大的辛誠讓我?guī)退愕婪e分,用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
          謝!
          主站蜘蛛池模板: 东至县| 卓资县| 甘孜县| 乐至县| 昌图县| 改则县| 甘谷县| 文成县| 呼玛县| 土默特右旗| 邵阳市| 杭锦后旗| 山阴县| 柯坪县| 景洪市| 明溪县| 丽水市| 兴海县| 郑州市| 方山县| 清涧县| 星子县| 白水县| 呼和浩特市| 新闻| 松阳县| 姚安县| 恭城| 东至县| 英山县| 临潭县| 云霄县| 邓州市| 阳朔县| 迭部县| 德昌县| 黄梅县| 文成县| 新巴尔虎右旗| 米林县| 铅山县|