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

          關(guān)于 HOUGH變換的MATLAB的程序幾個(gè)問題
          引用地址:http://www.xici.net/b582330/d37390708.htm [ 返回《南航天下之研究..》 
           
          風(fēng)語者4228639 發(fā)表于:2006-5-9 21:39:59

          我現(xiàn)在在做畢設(shè),是關(guān)于小球位置檢測(cè)的。先用邊緣檢測(cè)找到邊緣,用HOUGH變換的方法檢驗(yàn),通過MATLAB編程實(shí)現(xiàn)。
          我先在網(wǎng)上找到一個(gè)檢測(cè)直線的HOUGH變換的程序。
          % Hough 變換
          i=imread('b.jpg');
          i_long =size(i,1);
          i_width=size(i,2);
          i_edge=edge(i,'robert');
          i_hough=zeros(300,300);   %創(chuàng)造一個(gè)300*300的矩陣
          theta_step=3.14*2/299;
          theta=0:theta_step:2*3.14;

          x_max=1;   
          x_min=1;
          y_max=1;
          y_min=1;

          for x=1:i_long
             for y=1:i_width
               if i_edge(x,y)==1
               x_max=max(x_max,x);  
               x_min=min(x_min,x);
               y_max=max(y_max,y);
               y_min=min(y_min,y);
               end
             end
          end

          p_min=sqrt(x_min^2+y_min^2);        %開平方
          p_max=sqrt(x_max^2+y_max^2);
          p_step=2*p_max/299;
          p=-p_max:p_step:p_max;

          for x=1:i_long
              for y=1:i_width
                  if i_edge(x,y)==1     %對(duì)于邊緣點(diǎn)進(jìn)行累加
                     rou=x.*cos(theta)+y.*sin(theta);
                      w=fix(rou./p_step)+151;
                      l=fix(1+theta./theta_step);
                      n=300.*(l-1)+w;
                      i_hough(n)=i_hough(n)+1;
                  end
              end
          end

          m=max(max(i_hough));
          i_hough=(i_hough./m);
          imshow(i_hough)

          請(qǐng)問一下,HOUGH變換后必須要重新確定邊緣點(diǎn)的位置,請(qǐng)問一下坐標(biāo)系如何確定,是在程序的哪個(gè)部分。
          謝謝有了解的請(qǐng)給個(gè)解答。謝謝


           

          每個(gè)女孩都曾是無淚的天使,當(dāng)遇到自己喜歡的男孩時(shí)
          便會(huì)流淚——于是墜落凡間,變?yōu)榕ⅰ?br>所以男孩一定不要辜負(fù)女孩,因?yàn)榕槟惴艞壛苏麄€(gè)天堂!

          雖然我不是把你從天使變成女孩的那個(gè)人,
          但希望我是把你從女孩變成女人的那個(gè)人
             

          posted @ 2007-07-05 00:37 小強(qiáng)摩羯座 閱讀(1910) | 評(píng)論 (0)編輯 收藏

           
          12月23日

          在冬天出生的孩子

          CET-4,就這樣結(jié)束了,有好多遺憾的東西留下,有好多自己沒有把握住的
          盼望已久的考試,就這樣過去了,好多東西就這樣過去了,抓也抓不住
          生活依然要繼續(xù),學(xué)習(xí)也還在繼續(xù)......
           
          06年的12月,冬天,沒有白色陪伴的季節(jié),沒有雪花飄舞的南京
          我是個(gè)在冬天出生的孩子,但是我很怕冷
          其實(shí)我很喜歡冬天,喜歡站在路燈下面看漫天的雪花飄落,像是電影中的畫面
          我很喜歡冬天,在很冷的時(shí)候也可以沒有任何理由的牽起愛人的手
          我很喜歡冬天,可以放起我最愛的煙花,在星空下肆無忌憚的流淚,說一輩子也不分開
          我很喜歡冬天,可以在玻璃上呵氣畫心型的圖案,代表我對(duì)你的想念
          我很喜歡冬天,因?yàn)槎煊形蚁矚g的CHRISTMAS  DAY
          我很喜歡冬天,因?yàn)橛袑?duì)我來說最重要的日子,一個(gè)可以讓我長(zhǎng)大的日子
          我很喜歡冬天,因?yàn)橛写汗?jié),我最喜歡的節(jié)日
          我很喜歡冬天,因?yàn)槲易钇诖^的日子--一個(gè)只需要相愛就可以在一起過的日子
          我很喜歡冬天,因?yàn)橛泻?一個(gè)可以回到我熟悉的城市,每天陪你的假期
          我很喜歡冬天,外面冷冷的,屋子里面總是暖暖的,而我總是很喜歡暖暖的感覺
          我很喜歡冬天,因?yàn)槲铱倳?huì)在冬天想起你
          我很喜歡冬天,可以用心的準(zhǔn)備禮物,然后把它拿到你的面前,看你臉上幸福的表情
          我很喜歡冬天,因?yàn)槲覀冊(cè)诙煜嘤?然后彼此珍惜,說好一輩子不分開
           
          我總覺得,在冬天出生的孩子,感情的道路總會(huì)磕磕絆絆
          我總覺得,在冬天出生的孩子,需要被人照顧,需要好多好多的愛
          我總覺得,在冬天出生的孩子,永遠(yuǎn)會(huì)等著那個(gè)懂得珍惜她的人出現(xiàn)
          我總覺得,在冬天出生的孩子,總會(huì)很容易的就相信,總會(huì)很容易的就感動(dòng)
          我總覺得,在冬天出生的孩子,期待一切的幸福,一切暖暖的色調(diào)
           
          在冬天出生的孩子很多,有你,有我
          我不知道會(huì)走過怎樣的冬天,我只要你陪我,我就很滿足了
          我不知道今年的冬天會(huì)是怎么樣的,但是我知道,一定會(huì)有個(gè)為我放起煙花的男孩子出現(xiàn)
          我知道,他會(huì)陪我走過每一天

          posted @ 2007-07-03 23:24 小強(qiáng)摩羯座 閱讀(175) | 評(píng)論 (0)編輯 收藏

          冬天出生
          2006-12-09 23:58

          忘了聽誰說起,

          冬天出生的人容易抑郁,

          至少我是其中一個(gè)。

           

          冬日用隆重和嚴(yán)厲的冷語,

          告訴我們應(yīng)該放棄的執(zhí)著。

          只有詩(shī)人們,產(chǎn)下最多的憂愁的思緒。

           

          我感覺到陽(yáng)光在大地上的逐漸消失,

          一塊塊令人費(fèi)解的黑色的斑點(diǎn),

          那是行人的影子。

           

          已經(jīng)枯萎的荊棘,

          又開始在我的周圍詭秘地生長(zhǎng),

          直到有一天那刺上沾上我的鮮血,

          讓我窒息......

          posted @ 2007-07-03 23:23 小強(qiáng)摩羯座 閱讀(131) | 評(píng)論 (0)編輯 收藏

               摘要: 上周自南昌出差上海,途中空閑便拿夏業(yè)良先生的《經(jīng)濟(jì)學(xué)能做什么》翻閱。鄰鋪一女子,年齡大約二十七八,氣質(zhì)較好,但形容有些憔悴,正在讀《環(huán)球時(shí)報(bào)》一篇關(guān)于臺(tái)海局勢(shì)的文章。途中,互換閱讀物,開始交談,話題便是臺(tái)海局勢(shì)。是戰(zhàn)?是和?是統(tǒng)?是獨(dú)?我用經(jīng)濟(jì)學(xué)的眼光進(jìn)行了一些分析,女子感到我的分析方法另辟蹊徑,我的結(jié)論新穎獨(dú)到,于是說:“想不到經(jīng)濟(jì)學(xué)如此有趣!不知是否可以解釋情感方面的問題?”旅途勞頓,單調(diào)困乏,我一聽有情感故事大餐共享,豈不美哉!連忙說:“應(yīng)該可以,但結(jié)論是否正確還要你自己去評(píng)判。”
          于是,一場(chǎng)關(guān)于情感、戀愛、婚姻的經(jīng)濟(jì)學(xué)即興問答拉開序幕
            閱讀全文

          posted @ 2007-06-27 23:55 小強(qiáng)摩羯座 閱讀(223) | 評(píng)論 (0)編輯 收藏

               摘要:   [轉(zhuǎn)載〕 Matlab創(chuàng)建有價(jià)值歷史紀(jì)錄(完整版) ...  閱讀全文

          posted @ 2007-06-27 23:46 小強(qiáng)摩羯座 閱讀(1446) | 評(píng)論 (0)編輯 收藏

           
          [轉(zhuǎn)載]續(xù) Matlab創(chuàng)建有價(jià)值歷史紀(jì)錄(完整版)
          2007-06-18 19:14:26
           % ++++MATLAB矩陣示例
          % airfoil    %    美國(guó)太空總署機(jī)翼的稀疏矩陣的繪圖示例。
          % buckydem    %    Buckminster Fuller的網(wǎng)格球頂連通圖。
          % delsqdemo    %    不同域上的有限拉普拉斯微分算子。
          % eigmovie    %    對(duì)稱特征值電影。
          % eigshow    %    矩陣特征值的圖示。
          % intro     %    MATLAB基本矩陣運(yùn)算的介紹。
          % inverter    %    大矩陣的逆示例。
          % matmanip    %    矩陣操作介紹。
          % rrefmovie    %    簡(jiǎn)化行階梯形的計(jì)算。
          % sepdemo    %    有限元網(wǎng)格的分離器。
          % sparsity    %    稀疏排序效果演示。
          % svdshow    %    矩陣奇異值的圖形示例。
          %
          % ++++MATLAB數(shù)字示例
          % bench     %    MATLAB基準(zhǔn)。
          % census    %    美國(guó)2000年人口預(yù)報(bào)。
          % e2pi     %    如下問題的二維直觀解答“e和e哪個(gè)較大?”
          % fftdemo    %    光譜分析的快速傅立葉變換法使用。
          % fitdemo    %    用單一算法作非線性曲線擬合。
          % fplotdemo    %    函數(shù)作圖的示例。
          % funfuns    %    函數(shù)嵌套示例。
          % lotkademo    %    常微分方程解的示例。
          % quaddemo    %    適應(yīng)性積分。
          % quake     %    Loma Prieta震蕩。
          % spline2d    %    二維ginput和spline的示例。
          % sunspots    %    MATLAB中快速傅立葉變換示例,用于分析太陽(yáng)黑子活動(dòng)性的變化。
          % zerodemo    %    用fzero找零點(diǎn)。
          %  
          % ++++MATLAB可視化程序示例
          % colormenu    %    在當(dāng)前圖象添加顏色條示例。
          % cplxdemo    %    單復(fù)變函數(shù)映像。
          % earthmap    %    地球地形的圖形演示。
          % graf2d    %    MATLAB中的二維坐標(biāo)圖
          % graf2d2    %    MATLAB中三維坐標(biāo)圖。
          % grafcplx    %    MATLAB中復(fù)函數(shù)圖象。
          % imagedemo    %    MATLAB的圖形功能演示。
          % imageext    %    變換與旋轉(zhuǎn)圖像顏色圖演示。
          % lorenz    %    洛侖茲混沌吸引子附近軌道的圖象演示。
          % penny     %    便士數(shù)據(jù)幾種圖。
          % vibes     %    震蕩L形膜電影。
          % xfourier    %    傅立葉級(jí)數(shù)展開的圖形演示。
          % xpklein    %    克萊因瓶演示。
          % xpsound     %    MATLAB聲音功能演示。
          %  
          % ++++MATLAB語言程序示例
          % graf3d    %    表面圖的句柄圖演示。
          % hndlaxis    %    軸的句柄圖演示。
          % hndlgraf    %    線圖的句柄圖演示。
          % xplang    %    MATLAB語言介紹。
          %  
          % ++++MATLAB常微分方程組程序演示
          % a2ode     %    帶實(shí)特征值的線性剛性問題。
          % a3ode     %    帶實(shí)特征值的線性剛性問題。
          % b5ode     %    帶復(fù)特征值的線性剛性問題。
          % ballode     %    用于BALLDEMO中的彈球運(yùn)動(dòng)方程。
          % besslode    %    用于BESSLDEMO的零階Bessel方程。
          % brussode    %    模擬化學(xué)反應(yīng)(Brusselator)的剛性問題。
          % buiode    %    Bui的剛性問題的分析解。
          % chm6ode    %    從Enright到Hull的化學(xué)加工6的剛性問題。
          % chm7ode    %    從 Enright到Hull的化學(xué)加工7的剛性問題。
          % chm9ode    %    從 Enright到Hull的化學(xué)加工9的剛性問題。
          % d1ode     %    帶非線性實(shí)特征值的剛性問題。
          % fem1ode    %    帶有依賴于時(shí)間的塊矩陣的剛性問題。
          % fem2ode    %    帶有不依賴于時(shí)間的塊矩陣的剛性問題。
          % gearode    %    由van der Houwen引用的歸于Gear的剛性問題。
          % hb1ode    %    Hindmarsh和Byrne的剛性問題1。
          % hb2ode    %    Hindmarsh和Byrne的剛性問題2。
          % hb3ode    %    Hindmarsh和Byrne的剛性問題3。
          % odedemo    %    常微分方程組積分器的示例。
          % orbitode    %    用于ORBITDEMO的限制三物體問題。
          % orbt2ode    %    Hull et al的非剛性問題D5。
          % rigidode    %    不受外力的剛體的歐拉方程。
          % sticode    %    用于STICDEMO的固定于表面的彈簧驅(qū)動(dòng)質(zhì)量。
          % vdpode    %    可參數(shù)化的van der Pol方程(對(duì)大μ剛性)。
          %  
          % ++++MATLAB圖庫(kù)程序示例
          % cruller    %    麻花炸面圈的圖形演示。
          % klein1    %    克萊因瓶的圖形演示。
          % knot     %    包圍三維繩結(jié)的管。
          % logo     %    MATLAB的L形膜標(biāo)識(shí)語的圖形示例。
          % modes     %    L形膜的12種模式的圖形演示。
          % quivdemo    %    震動(dòng)方程的圖形演示。
          % spharm2    %    球面諧波的圖形演示。
          % tori4     %    四連接,未成結(jié)的圓環(huán)面的圖形演示。
          % finddemo    %    查找單獨(dú)工具箱的可用示例的命令。
          % helpfun    %    方便地顯示幫助文本的效用函數(shù)。
          % membrane    %    MathWorks標(biāo)識(shí)語。
          % peaks     %    雙變量的樣本函數(shù)。
          % pltmat    %    在figure窗口顯示矩陣的命令。
          %  
          % +++++MATLAB游戲演示程序
          % bblwrap    %    泡泡游戲。
          % life     %    Conway的生命游戲。
          % soma     %    彩色魔方塊。
          % xpbombs    %    掃雷游戲。
          %  
          % ++++MATLAB其他演示程序
          % codec     %    字母變換編碼器/解碼器。
          % crulspin    %    扭紋圈自轉(zhuǎn)電影。
          % logospin    %    MathWorks標(biāo)識(shí)語的自轉(zhuǎn)電影。
          % makevase    %    表面旋轉(zhuǎn)的演示。
          % quatdemo    %    四元數(shù)旋轉(zhuǎn)。
          % spinner    %    彩色線在空間自轉(zhuǎn)。
          % travel    %    “貨郎擔(dān)”問題。
          % truss     %    彎橋構(gòu)架動(dòng)畫。
          % wrldtrv    %    繞地球大圓的航空線。
          % xphide    %    運(yùn)動(dòng)物體的可視感知。
          % xpquad    %    二次超曲面的作圖演示。
          %  
          % ++++MATLAB幫助函數(shù)示例
          %    bucky    %    Buckminster Fuller的球頂網(wǎng)格圖。
          % cmdlnbgn    %    命令行示例的設(shè)定。
          % cmdlnend    %    命令行示例演示后清除。
          % cmdlnwin    %    運(yùn)行命令行演示的通行路徑。
          % finddemo    %    對(duì)單獨(dú)工具箱查找可用示例的命令。
          % helpfun    %    方便地顯示幫助文本的效用函數(shù)。
          % membrane    %    MathWorks標(biāo)識(shí)符。
          % peaks     %    雙變量樣本函數(shù)。
          % pltmat    %    在figure窗口顯示矩陣的命令。
             quit
          % 你可以把上面的代碼在命令運(yùn)行窗口里運(yùn)行一下,然后你再遇到問題時(shí)就可以
          % 在歷史記錄中找相關(guān)命令了,但愿對(duì)朋友們有幫助吧!

          % 作者:greation ,版權(quán)所有,引用請(qǐng)注明出處并請(qǐng)保留作者署名,謝謝!

          posted @ 2007-06-27 23:43 小強(qiáng)摩羯座 閱讀(776) | 評(píng)論 (0)編輯 收藏

           
          從一個(gè)簡(jiǎn)單的例子說起
          2006-12-25 17:21:23
          馬上要考試?yán)玻疫€要寫報(bào)告做實(shí)驗(yàn),可就是打不起精神來準(zhǔn)備。突然想起來寫寫blog,這次想寫的是關(guān)于matlab混合編程的東西,以便日后用得著的時(shí)候可以方便的查看。
           
          關(guān)于為什么要進(jìn)行matlab的混合編程的原因,現(xiàn)在不想去仔細(xì)地調(diào)查了,哪天有興致了再寫吧。matlab的混合編程范圍也很廣,包括與C,fortran,Basic等各種高級(jí)語言的混合編程,我呢,只對(duì)C還稍稍有點(diǎn)認(rèn)識(shí),就寫C的。
           
          matlab與C的混合編程包括在C中調(diào)用matlab和在matlab中調(diào)用C。先寫在C中調(diào)用matlab吧。在C中調(diào)用matlab可以使用matlab引擎,也利用matlab編譯器。嗯,先寫利用matlab編譯器的。
           
          關(guān)于這個(gè)編譯器的介紹,等考完P(guān)LD了,再去仔細(xì)地調(diào)研一下。這篇呢就從一個(gè)簡(jiǎn)單的例子來講述一下怎么利用matlab的編譯器來進(jìn)行混合編程。
           
          首先,啟動(dòng)matlab,編寫一個(gè)簡(jiǎn)單的函數(shù)M文件,myplot.m:
          function myplot()
           
          n = 0:0.01:1;
          y = sin(2*pi*n);
           
          plot(n,y)
           
          NOTE:就目前來說,matlab還只支持函數(shù)M文件的編譯,而不支持腳本M文件,所以一定要寫成函數(shù)M文件。
           
          寫完M文件之后,必須對(duì)文件進(jìn)行編譯。在編譯之前,必須對(duì)編譯器進(jìn)行配置(這個(gè)步驟只需進(jìn)行一次,下次再用時(shí)就不用再進(jìn)行配置了)。配置使用的命令是mbuild -setup。然后按著提示選擇y/n和123就好了。
          配置完成之后,就可以進(jìn)行編譯了。編譯使用的命令是mcc。mcc函數(shù)可以帶多種參數(shù),關(guān)于各個(gè)參數(shù)的含義以后再說吧。在這里使用:
          mcc -W cpplib:libmyplot -T link:lib myplot.m
           
          Note:這里libmyplot是生成的lib文件的文件名,myplot.m是待編譯的文件。使用這個(gè)命令將會(huì)生成一序列不同格式的文件,在后面將會(huì)利用到。這個(gè)過程比較慢,要耐心等待,別以為是程序有問題然后就給關(guān)了,呵呵。
           
          這些是用matlab來實(shí)現(xiàn)的步驟,下面就要開始用c來調(diào)用了。
          先要對(duì)vc的預(yù)編譯路徑進(jìn)行設(shè)置。我用的是VC++6.0,設(shè)置的方法是:
          在tools\options\directions下的show directions for下的組合框選include files項(xiàng),添加"%matlab\extern\include",再選擇library files項(xiàng),添加"%matlab\EXTERN\LIB\WIN32\MICROSOFT"。這里%matlab是matlab的安裝路徑,library files項(xiàng)要根據(jù)系統(tǒng)平臺(tái)及c語言的開發(fā)環(huán)境來選擇。這個(gè)設(shè)置跟前面matlab編譯器的設(shè)置一樣,只需要設(shè)一次就可以了,建立其它的工程時(shí)不用現(xiàn)進(jìn)行設(shè)置。
           
          然后可以開始編程了。這里選用MFC編程。先建立一個(gè)基于對(duì)話框的工程,接受所有黑夜默認(rèn)的設(shè)置。完成后,將前面編譯生成的.ctf,.dll和.lib文件復(fù)制到當(dāng)前工程路徑下。
           
          對(duì)生成的對(duì)話框做一些改動(dòng),去掉自動(dòng)生成的“確定”及取消“按鈕”及文本(如果你想留著也沒關(guān)系啦),添加"Plot"及"Close"按鈕,并添加其響應(yīng)函數(shù)(雙擊按鈕就會(huì)生成的)。
           
          在myplotDlg.cpp文件里添加:
          #include myplot.h
           
          在OnInitDialog函數(shù)里添加如下:
          // Initialize the MCR
           if (!mclInitializeApplication(NULL,0))
           {
            AfxMessageBox(_T("Could not intialize the application."));
            return TRUE;
           }
           // Initialize the matlab library
           libmyplotInitialize();
           
          在Plot按鈕的響應(yīng)函數(shù)中,添加:
          myplot();
           
          在Close按鈕的響應(yīng)函數(shù)中,添加:
          // Terminate the library
           libmyplotTerminate();
           
           // Terminate the MCR
           mclTerminateApplication();
           
           OnClose();
           
          程序的編寫到這里就OK啦。然后要設(shè)置連接選項(xiàng)了。
          Project\settings\category選擇Input,在Object/Library modules添加libmyplot.lib mclmcrrt.lib,對(duì)Win32 Release和Win32 Debug都進(jìn)行相同的設(shè)置。
           
          這樣的Over了,編譯,鏈接,運(yùn)行,就可以看到結(jié)果了。不過估計(jì)是因?yàn)橐獑?dòng)MCR吧,程序的啟動(dòng)會(huì)很慢,耐心等待哦。
           
          最后說一下關(guān)于程序的發(fā)布問題。之所以進(jìn)行混合編程,一個(gè)很重要的原因就是想讓一些matlab函數(shù)可以脫離matlab平臺(tái)運(yùn)行,為了達(dá)到這一目的,在發(fā)布程序時(shí),除了發(fā)布C生成的可執(zhí)行文件及matlab編譯生成的.ctf,.dll和.lib文件外,還應(yīng)該同時(shí)發(fā)布一個(gè)MCRInstaller以便沒有matlab平臺(tái)的用戶使用。MCRInstaller的生成方法很簡(jiǎn)單,使用下面的函數(shù)即可:
          zipfile = buildmcr(dirname)
          該函數(shù)將生成MCRInstaller.zip文件,并將該文件保存到dirname指定的路徑下,zipfile返回的是完整的路徑名。
           
          這樣就可以發(fā)布程序了。沒有matlab平臺(tái)的用戶在使用時(shí),應(yīng)該先將MCRInstaller.zip解壓到本地的某一路徑下,并將其中的可執(zhí)行文件所在的路徑(應(yīng)該是在bin文件夾底下)添加到系統(tǒng)環(huán)境變量中。
          Note:添加系統(tǒng)環(huán)境變量的方法
          在我的電腦上右鍵,選擇屬性,再選擇高級(jí)子菜單,點(diǎn)擊環(huán)境變量按鈕,并點(diǎn)擊彈出對(duì)話框中系統(tǒng)變量對(duì)應(yīng)的新建按鈕,變量名可以自定義,變量值就是前面得到的路徑。
           
          這樣就徹底地結(jié)束了,不過我沒有在沒有matlab平臺(tái)的電腦上測(cè)試過,哪位測(cè)試過的告訴我一下結(jié)果。

          posted @ 2007-06-27 22:53 小強(qiáng)摩羯座 閱讀(1093) | 評(píng)論 (1)編輯 收藏

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

          posted @ 2007-06-21 23:12 小強(qiáng)摩羯座 閱讀(755) | 評(píng)論 (2)編輯 收藏

          1  啟動(dòng)

          % 獲取當(dāng)前文件所在路徑

          currPath = fileparts(mfilename('fullpath'));

          % 切換工作路徑到當(dāng)前位置

          cd(currPath);

          % 判斷所用操作系統(tǒng)

          if computer == 'PCWIN'

              % MATLAB版本號(hào)

              v = version;

              if v(1)~='7'        

                  warndlg ('Only run in matlab 7.x(R14.x)');

                  return

          else

                  % 添加當(dāng)前路徑下的所有子目錄

                  addpath(genpath(pwd));

                  addpath(genpath(currPath));

              end

          end

          2  GUI中使用Axes控件

          % 1.刪除所有畫線及對(duì)應(yīng)圖例

          % 查找Axes控件中的畫線

          sameLines = findobj('type','line');

          % 逐一刪除這些畫線

              for i = 1 :length(sameLines)

                  delete(sameLines(i))

          end

          % 獲取Axes控件中的圖例(由于畫線全部被刪除,因此為空)

          lgStr = get(legend(handles.ResultsAxes), 'String');

          % 重新設(shè)置圖例(為空)

              legend(handles.ResultsAxes,lgStr);

          % 2.添加畫線

          % 獲取原來的圖例

          lgStr = get(handles.hLegend, 'String');

          % 設(shè)置下一個(gè)畫線為添加方式

          set(handles.ResultsAxes, 'Nextplot', 'add');

          % 指定要畫線的Axes

          axes(handles.ResultsAxes);

          % 畫線

          plot(distance_target, '-r')

          % 添加圖例

          handles.hLegend = legend(handles.ResultsAxes, lgStr,'目標(biāo)距離');

          % 3.刪除某一畫線

          % 所刪除畫線對(duì)應(yīng)的數(shù)據(jù)為distance_target,獲取它的句柄

          sameLines = findobj('type','line','YData', distance_target);

          % 刪除畫線

              if ~isempty(sameLines)

                  delete(sameLines);

          end

          % 獲取原有的圖例

          lgStr = get(legend(handles.ResultsAxes), 'String');                    

          % 從原有圖例中刪除對(duì)應(yīng)圖例

              legend(handles.ResultsAxes, setdiff(lgStr, {'目標(biāo)距離'}));

          3  GUI中使用Excel表格(Activex控件Microsoft Office Spreedsheet

          % 獲取現(xiàn)在使用的spreedsheet的句柄

          ActiveSheet = get(handles.activex1,'ActiveSheet');

             % 現(xiàn)在使用的spreedsheet的現(xiàn)在使用工作薄

             ActiveWorkbook = get(handles.activex1,'ActiveWorkbook');            

             % 現(xiàn)在使用的表

          eSheets = handles.activex1.ActiveWorkbook.Sheets;

             % 使用表的第一個(gè)子表

             eSheet1 = eSheets.get('Item', 1);

             % 激活該表

             eSheet1.Activate;

          % 獲取當(dāng)前單元格的句柄

          ActiveCell = get(handles.activex1, 'ActiveCell');

          % 選擇坐標(biāo)為A1的單元格

          Select(Range(ActiveSheet,'A1'));

          % 獲取當(dāng)前單元格的句柄

          ActiveCell = get(handles.activex1, 'ActiveCell');

          % 設(shè)置當(dāng)前單元格中的內(nèi)容

              set(ActiveCell, 'Value', '仿真結(jié)果報(bào)告');  

          4  Axes控件設(shè)置圖片

          % 所有設(shè)置的Axes控件

          axes(handles.MyLog);

          % 讀取圖片數(shù)據(jù)

          Image_tip1=imread('Setting/mylog.jpg');

          % 顯示圖片

          image(Image_tip1);

          posted @ 2007-06-21 21:30 小強(qiáng)摩羯座 閱讀(4653) | 評(píng)論 (2)編輯 收藏

          OldHandle = findobj( 'Name', '悲傷' ) ;i f ~isempty(OldHandle),delete(OldHandle) ;end
          for Time = '現(xiàn)在':'每一天':'永遠(yuǎn)',set( gco, '心情', '快樂');end % 這段代碼為你天天快樂而存在

          posted @ 2007-06-21 21:14 小強(qiáng)摩羯座 閱讀(349) | 評(píng)論 (0)編輯 收藏

          僅列出標(biāo)題
          共20頁(yè): First 上一頁(yè) 12 13 14 15 16 17 18 19 20 下一頁(yè) 
          主站蜘蛛池模板: 穆棱市| 南郑县| 宜兴市| 阿合奇县| 从化市| 乐都县| 南乐县| 乌兰浩特市| 德化县| 开封县| 杨浦区| 泽普县| 灵山县| 锦州市| 东乡族自治县| 林口县| 阜新| 桐乡市| 富源县| 庆元县| 澄江县| 车险| 泰安市| 彩票| 灌南县| 思南县| 静乐县| 溧水县| 扎鲁特旗| 林州市| 泰宁县| 尤溪县| 木兰县| 肥城市| 正蓝旗| 海原县| 昭平县| 漠河县| 明星| 田阳县| 额尔古纳市|