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中的語句就是在程序運行時,就立即執行的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
          謝!
          主站蜘蛛池模板: 永登县| 永泰县| 遂宁市| 临朐县| 原平市| 财经| 渭南市| 平乡县| 新竹市| 皋兰县| 万州区| 洛阳市| 乌苏市| 华宁县| 扎鲁特旗| 桃园市| 南部县| 响水县| 喜德县| 蛟河市| 岑溪市| 化隆| 屯留县| 莱西市| 宜宾市| 霍城县| 晋城| 临汾市| 仙居县| 漳州市| 武鸣县| 岗巴县| 治多县| 八宿县| 化州市| 滨州市| 二连浩特市| 福安市| 高雄市| 唐河县| 怀远县|