《量化投資:以MATLAB為工具》

MATLAB技術論壇

 找回密碼
 注冊賬號
查看: 677284|回復: 2015
打印 上一主題 下一主題
收起左側

[幫助] 寫給MATLAB新手的幾句話(值得一看)

    [復制鏈接]
跳轉到指定樓層
樓主
發表于 2008-11-30 23:05:29 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
作者:eight (八) 來源振動論壇

本人接觸MATLAB已經有5年多的時間了,一直想寫點東西,但是之前不知道放在哪里才能發揮它的最大作用,直到幾天前碰上了這個論壇(有點像諸葛亮遇見姜維,哈哈)。

廢話不說,我想借貴論壇寶地,寫一些經驗給使用matlab的新手們,當然了,老大們也可以看看,不嫌棄我寫得粗糙的話還可以指點一下,先謝過了~~~~

首先我想說的是,matlab跟其他語言不一樣(我用的比較多的編程語言,除了matlab就應該是c或c++了,VB和Delphi也接觸過,我想版面(matlab版)大部分人也差不多),如果你抱著“把其他語言的思想運用在matlab里面”的話,那么我想,即使程序運行不出錯,也很難把握matlab的精髓,也就很難發揮matlab的作用了。所以,如果你是希望matlab作為VC的附屬品,即你不想在matlab上面花太多功夫,只純粹想用matlab來完成VC做不了或很難做成的任務的話,那么,這篇文章你也不需要再閱讀下去了;如果你是希望掌握一門語言、一個工具,使它更有效為你服務的話,那么,希望本文對你有所幫助。

Matlab是一個基于矩陣運算的軟件,這恐怕是眾所周知的事情了,但是,真正在運用的時候(就是在編程的時候),許多人(特別是初學者)往往沒有注意到這個問題,因此,for循環(包括while循環)滿天飛…………..這不僅是暴殄天物(沒有發揮matlab所長),還浪費了你寶貴的時間。對此,版友MVH在他的“MATLAB 小技巧”一文中也有所涉及,雷同的東西我也就不重復了,matlab的“幫助”里面也有相關的指示。我這里想說的一點是,初學者往往在初始化矩陣的時候注意到這個問題,懂得了使用矩陣而不是循環來賦值,但是,在其他環節上,就很容易疏忽,或者說,仍然沒有擺脫C++的思想。舉個例子吧,下面的代碼是我的一個師弟寫的,我想他接觸matlab也有2、3年時間了(在此說明一下,接觸2、3年并不是表示每天都會跟matlab打交道,我本人也不是,只是在一年某幾個時間段里面連續使用),但是仍然會出現類似的問題:

  1. J = 0;
  2. lt = size(imf1,2);
  3. for (i = 1:lt)
  4. if (abs(imf1(i)) > 1)
  5. J = 1;
  6. break
  7. end
  8. end
復制代碼
上面的代碼實現了一個目的――檢查信號imf1(一個向量)是否存在絕對值大于1的點,這顯然是基于C++的思想寫出來的。如果在matlab下面,其實用兩個語句就足夠了(當然,可以合并為一個):

  1. q = find(imf1>1);
  2. J = ~isempty(q);
復制代碼
這樣的修改帶來的好處是很可觀的。又如:

  1. for j = 1:num
  2. imf1(start1+j) = 2*li1(j+1) - imf1(start1+j);
  3. end
復制代碼
這是一個對稱翻折的問題,它完全可以用以下這個語句簡潔表示:

  1. imf1(start1+1:start1+num) = 2*li1(2:num+1) - imf1(start1+1:start1+num);
復制代碼
因此,如果是新手,可以先用循環(基于C++的思想)來編寫代碼,然后看看能否用matlab的語言(基于矩陣的思想)來改進。當然,這樣做的前提是你對matlab提供的一些函數比較熟悉才行,這些函數在matlab的“幫助”那里搜索“Functions Used in Vectorizing”就可以找到一些,其他的也可以找相關的書籍(沒找到?不可能,電子版總可以下載到的)!
對提高matlab編程能力的方法,我想主要有以下三個:

  1. 1. 查help
  2. 2. 多上上論壇,搜索帖子、發帖子問人
  3. 3. 閱讀別人、特別是牛人的程序
  4. 當然了,正如所有的程序語言一樣,“3分課本7分上機”,一定要動手才行,不能光看。多想、多思考、多嘗試,才是正路。
復制代碼
最后,整理一下常用的快捷鍵(用【】表示)或命令:

  1. 1. 在命令窗口(Command Window)中:
  2. 1) 【上、下鍵】――切換到之前、之后的命令,可以重復按多次來達到你想要的命令
  3. 2) clc――清除命令窗口顯示的語句,此命令并不清空當前工作區的變量,僅僅是把屏幕上顯示出來的語句清除掉
  4. 3) clear――這個才是清空當前工作區的變量命令,常用語句clear all來完成
  5. 4) 【Tab】鍵――(轉自版友心燈)在[email protected]看到的:在command窗口,輸入一個命令的前幾個字符,然后按tab鍵,會彈出前面含這幾個字符的所有命令,找到你要的命令,回車,就可以自動完成。目前討論結果是:matlab6.5版本中,如果候選命令超過100個,則不顯示。而在matlab7以后版本中,則沒有這個限制,均可正常提示
  6. 5) 【Ctrl+C】(或【Ctrl+Break】)――(轉自版友yangjin_ren)在matlab程序運行過程中,可能由于程序編寫的失誤,導致程序不停的運行,在命令窗口輸入“Ctrl+C”可以將運行的程序停下來,而不需要將整個Matlab程序關掉。不過進行此操作的前提是能夠激活切換到命令窗口才行,呵呵。
復制代碼
2. 在編輯器(Editor)中:

  1. 1) 【Tab】(或【Ctrl+]】)――增加縮進(對多行有效)
  2. 2) 【Ctrl+[】--減少縮進(對多行有效)
  3. 3) 【Ctrl+I】--自動縮進(即自動排版,對多行有效)
  4. 4) 【Ctrl+R】――注釋(對多行有效)
  5. 5) 【Ctrl+T】――去掉注釋(對多行有效)
  6. 6) 【Ctrl+B】――括號配對檢查(對版本6.5有效,但版本7.0無效,不知道是取消了還是換了另外的快捷鍵,請大牛們指點,其他版本沒有測試過)
  7. 7) 【F12】――設置或取消斷點
  8. 8) 【F5】――運行程序
復制代碼
其余的例如在Debug狀態下的快捷鍵就不多說了,自己看菜單Debug吧!

累了, 有時間再寫吧。希望大家多交流~~~~~~

Coming: (以下東西都是一年前做的了,不知道能否記起,呵呵)

  1. 1) 關于神經網絡的――調用matlab的nntool命令后的使用問題(我做的時候沒有看過其他書籍或資料,是自己閉門造車的結果,如果寫之前發現其他書籍有相關介紹的話就不寫了)

  2. 2) 關于外部接口的――matlab與C++Builder的接口,想詳細介紹如何利用matcom 4.5在C++Builder中調用matlab的代碼以及matcom的一些技巧。由于我不是搞項目開發的(搞科研、搞課題的),所以對VC不熟悉,大學的時候學過一點,不過我想對于搞科研來說C++Builder就足夠了,免去很多麻煩,Builder在界面設計和數據庫連接上面(我只接觸過這兩方面)還是做得不錯的。同樣,如果發現其他書籍上有類似的東西就不寫了

  3. 3) GUI方面也寫寫吧,只是一點點心得或者體會,呵呵,這個相對簡單些,篇幅相對要少些。
復制代碼
推薦
發表于 2009-1-14 11:12:16 | 只看該作者

我與MATLAB這三年

作者:范群樹(cwit) 時間:2005年8月   來源:仿真科技論壇

  自從2002年3月1日開始接觸MATLAB,已經三年多了。當初花了一個月時間,才進入MATLAB的殿堂。那時立下了一個小小的心愿,三年里做到與高手平等交流。現在目標基本上實現了,卻找不到前進的方向。最近在做一些反思,希望能夠總結一些經驗和教訓,對自己,對新來者有一些幫助。也將我的想法分享給有共同愛好的朋友,感謝這一路走來,有那么多人相伴。

一、  孤獨的旅程
二、  學習經驗
三、  網絡新大陸
四、  第一屆MATLAB研討會
五、  英雄譜
六、  第二屆MATLAB研討會
七、  忙亂
八、  MATLAB俱樂部
九、  遺憾
十、  蛻變

一、  孤獨的旅程

  剛開始學習MATLAB,基本上都是靠自學。有一位前輩培訓了一次,但是時間還是太短了。那個時候看到MATLAB,只知道是一個很陌生的軟件,還是全英文環境。看到的第一本書,還是一本紫皮的講Simulink的書。后來上書店去買了一本鐵道出版社的書《MATLAB6.1程序設計與實例》,真是一本好書啊,現在還是我首選的MATLAB書,不時拿在手上翻翻。

  通讀了這本書,才對MATLAB的概念有所了解。因為要在界面上顯示一個圖像,其他人用的是一個pushbutton的CData顯示圖像,還能用鼠標按來按去。我記得MATLAB的對象結構上講了image,后來就想辦法用Image顯示出來這個圖像。花了三天左右搞定,這是我用MATLAB解決的第一個問題,對自己的鼓動很大。后來又利用空閑時間,做了一個三角函數的顯示模塊,原希望幫助初中生學習三角函數,一直沒有機會,就此埋沒了我的處女作。

  再之后就是買書,看書,不看help,因為英文不好。記得有一次,要寫一個界面,按鈕畫好了,回調函數也寫了,可是程序總是運行不通。那個程序看了幾十上百遍,還是沒有看出個所以然來。沒有人可以問,沒有人可以幫我,心中那個苦悶啊,依然無奈。只好硬著頭皮看help,看MATLAB的sample中的注釋。總算是開了悟,發現函數結構和函數流程沒有理清楚。

  開始那一年多時間就是這樣過來的。面對問題,自己琢磨,翻書,不行再找help。Google一下也沒有什么有用的資料。雖然去過Mathworks,難以找到什么好用的東西。沒有多少人可以討論和交流,聽說華為有一些博士在使用MATLAB,可是高人無緣一見啊。黑暗中的摸索,應該也就是這樣的吧。

  學習MATLAB的過程是孤獨的,MATLAB在軟件開發語言中也是孤獨的。同路者少,知音更少。

二、  學習經驗

  如果我在技術領域里面還有一點可以說的,那就是學習和使用MATLAB的一些方法和經驗。與很多朋友探討過,或者傳道過,也引起了一些兄弟的共鳴。今天我想聊一些新的認識。

  在與一個同事談到如何做一個優秀的技術工程師時,我提到了八個字:悟性、勤奮、堅持、付出。

  悟性。上小學最喜歡的一個字就是悟,以前以為悟就是一個人的慧根。其實不是這樣的,所謂悟就是想。要保持大腦的活力,要不停的想。除了上班的時候想,走路的時候要想,吃飯的時候還要想,睡著前再想想。有很多事情,技術的、非技術的問題,都是可以想明白的。只有不停的想,才能想明白,想透徹。我走在路上的時候,經常就在想MATLAB的對象屬性,所以我比誰都熟悉這幾百個對象屬性。

  勤奮。我這個人也比較懶惰的,但是我對自己喜歡的事情還是有一種韌性。我對勤奮的理解是,你是否每天比別人多學習三個小時?現在的年輕人,一代比一代聰明。要不被別人淘汰,要超越別人,只有靠時間堆出來。每天多學一些,多積累一些。在別人談小資的時候,想想一些現實的技術。看看國外傾瀉而下的標準、技術、商品,如何突圍?只有靠我們每個人的勤奮。每當想起我們那些在國外做了七八年的競爭對手,要在中國打敗他們,就只有靠時間、壓力和汗水的積累。喜歡上海的一個理由,就是這里的快節奏,可以不會讓我那么懶惰。有一些事情我想是可以值得驕傲一下的:有半年時間,平均每天學習MATLAB到半夜兩點以后;有兩個除夕夜,都是在編寫程序。

  堅持。做潛力開發的培訓,往往要培養一個人永不放棄的斗志和信念。搞MATLAB也是這樣,涉及的領域太多,每個領域里面都缺乏足夠的專家分布在你周圍。那么我們很難有機會接觸到真正的高手,對我們的技術細節一一指點。在遇到實際問題時,就只能靠自己去摸索。常常是再堅持一兩個小時,就能夠解決你的問題。最大的成就感,就在付出了極大的心血和耐心,才取得一個艱難的小勝利。(真的做完一件事情,也許那感覺就是一個字:累)印象很深刻的一件事情,有一次SCIE與我聊起一個混合編程的問題,喋喋不休的講完了第七種方案(因為好幾個我沒有聽懂),依然不能解決問題,又想到了第八種方案。如果沒有堅持,一般人也就能夠想到第三步、第四步,如何能夠達到圣人的境界?

  付出。這也許是一個過時的話題,但是我堅信,付出依然能夠給我們帶來可觀的回報。付出,不是今天老板給了你薪水,你可以繼續為他工作一個月。我所理解的付出,是每天為公司、國家多工作兩個小時。有一些規則是顯性的,有一些規則不是那么容易發現的,是潛規則。我不是倡導無私,我只是希望通過自身的努力,提高公司的競爭力,提高民族的競爭力。在這個過程中,也相應的提高了作為個體的技術工程師的競爭力。現代的競爭是激烈而殘酷的,只有熟悉地緣政治的人,才能有深刻的理解。作為MATLAB的愛好者,我希望能夠為這個群體做一些事情。沒有師傅,就尋求一些高手的幫助。找不到高手,就尋找朋友。沒有朋友感興趣,就培養這個群體。土壤厚重了,我們這些生物才能生長得更茂盛一些!

三、  網絡新大陸

  有一次在一本雜志上看到,CSDN是中國最大的程序員論壇。我就上去逛了幾回,果然人氣很高,無奈網速太慢,經常被擠了下來。遺憾的是,發現MATLAB方面的資料太少。雖然也有人振臂高呼創建MATLAB專區,無奈云集者寡,打不動高層。在數據結構板塊遇到了幾個朋友,其中SCIE介紹我到simwe看看。哇噻,果然是一個新大陸!竟然有一個MATLAB板塊,好多頁的帖子。興奮得睡不著覺,連著看了好幾個半夜。這里水太深,潛不到底。干脆就搜索其他的BBS論壇,從hr,到MATLAB大觀園,動力學,再到研學,等等。所有的論壇的帖子,能看的都看了一遍,有的一晚,有的一周。這一年多的苦悶一掃而光,原來世界上還要這么多同類!

  我是2003年8月份注冊simwe的,正式開始我的網絡技術交流。人多話題多,可以聊很多東西。比如最關心的接口,GUI編程,矩陣,圖像等等,都有人涉及。也聊一些學習方法,基礎知識,幫人答疑解惑。與幾任版主也漸漸熟悉起來,開始幫忙一起培養simwe嚴謹的風氣。鼓勵潛水,杜絕潛水,這也許算是網絡界的一大奇觀了。

  越來越多的朋友,了解了這個論壇,開始逐漸聚集起來。個體總是孤獨的,身邊的人難得對MATLAB感興趣,有感情的人更不多。但是這個群體卻有很多共同語言,相同的誠懇、努力和成就感!

四、  第一屆MATLAB研討會

  網絡的交流總是有限的,很多人聞其名,難見其面。于是就萌生了一個想法,大家搞一個聚會,一起聊聊。與simwe壇主電話溝通了一下,他也立即叫好。開始串聯網絡上認識的朋友,yqzeng,bigrice,亞丁等等。大家一拍即合,幾經討論,決定搞成一個技術研討會。第一次籌備會議是在上海交大校內的,坐在紀念碑旁的草坪上舉行的,因為大家都忙,越晚就越忙,時間就定在2004年5月16日(星期日)。我們把研討會的題目定為“第一屆MATLAB應用技術上海愛好者研討會”,一則心虛,限在上海;二者也希望以后形成一個慣例,有第二屆、第n屆。幾個人分工合作,就這樣開始籌備了。沒有贊助,就AA制。沒有人講,我們自己上了三個。沒有廣告,就利用網絡宣傳。各大論壇,各個高校,廣發英雄貼。

  5月16日,我們在上海那遙遠的西北角,同濟滬西校區集合了。上午還在匆匆忙忙的做最后的準備工作,編排會議日程,打印簽到表。用一個字形容,就是亂,沒有經驗。還好下午一點半總算是到了,人也來了一些,不多,不少,15個。最讓我們激動的時,Genial從合肥遠到而來。周恒毅為我們演示的上海南站的建筑結構圖,在風中的擺動,非常漂亮,

  現在想起第一屆MATLAB的研討會,雖然歷歷在目,卻又不知該如何詳細描述。雖然是清一色的男生,卻沒有冷落現場的氣氛。因為人少,我們買了很多瓜果零食,就搞成了茶話會。大家像一群野外偶聚的螞蟻,交頭接耳,交流化學信息。那天使用頻率最高的一個詞,就是感情,大家都在相互傳遞對MATLAB的深厚感情!雖然在夜幕中結束,還有部分人戀戀不舍。

  后來制作的紀念光盤,四處擴散,像一個招牌,開始持續擴大研討會的影響!

五、  英雄譜

  在這個領域里面浸潤久了,自然不自然就認識了很多英雄人物。自然的屬于相互交流,次數多了就熟了。不自然是慕名前往,刻意找個理由結交,也能如愿以償。在第一屆研討會的ppt里面也提到了一些網絡英雄榜。有一些人是很熟悉的,希望給大家指引一個地圖,可以去找到自己的偶像。

  薛定宇,開創了MATLAB大觀園,很多高手早年都是出自他的門下。公認對業界貢獻很大,因為他寫了好多本書。雖然我沒有認真通讀過,也買了好幾本。他的論壇最近搬新家了,去得少了。

  BB,寶島臺北人,我唯一的臺灣兄弟。MATLAB版主中公認威望最高的一個,前無古人,后盼來者。從事硬件開發,MATLAB理解很深刻。因為很用心,所以很累,后來選擇離開。但是他所積累的MATLAB經驗,所塑造的MATLAB學習交流風格,將繼續引導我們前進。讓我想起了《自由引導人民》。

  taohe、SCIE,這兩個是MATLAB領域的第一高手,分不出誰更高一些,就并列吧。他們對MATLAB的底層都有深刻理解。taohe是神龍見首不見尾,一直很忙,遠在新加坡。最近在寫書,希望可以早日買來做枕頭。SCIE對VC與MATLAB接口的研究,具有開創性的貢獻。如果在這方面有什么需求,請你搜索SCIE和混合編程(也是他定義的名詞)。

  cwit,也是一尊神。我只不過是頂著他的外衣,所以看得不是很明白。

  chinamaker,傳道士,在西北,人緣很好。為了動力學論壇不遺余力的宣傳,那一種精神值得我們學習。在MATLAB方面的造詣也很高。

  Genial、亞丁,同屬于視野開闊的獵手。如果你有什么什么領域不明白,找他們總能找到半個以上的答案。前者的個人網站很不錯,收集了很多MATLAB方面的文章和精華貼,沒有收到版稅的去找他要。后者的大本營是研學論壇,交游廣泛,尤其是研學的博士比較多。

  bzzz、jzfan,數學天才。有一些人,你可以仰望,但是不能理解。他們的數學思想應該就是這個境界。我也不能理解,就此略過。

  限于篇幅,余下與我一個層次的就不列了。如果有不滿意這個觀點的,不服氣的激情將帶領你們到一個更高的境界!

六、  第二屆MATLAB研討會

  又是一年春花開,bigrice想起來,今年的研討會繼續開。春節剛過,bigrice和yqzeng,就開始聊起MATLAB的話題,準備今年大干一場。2005年5月3日,我們幾個準備在上海交大的老地方,舉行第一次籌備會議。無奈上海國際活動太多,學校的大門不對我們開放了,只好改在徐家匯公園。大家聊了兩個多小時,現在看來,也就是熱熱身,鼓鼓干勁。

  2005年5月7日,在浦東軟件園舉行了第二次籌備會議,黃武、曾永齊、李維剛、范群樹,王家文(籌備團隊的新成員)。籌備會就整個研討會的詳細細節作了深入的討論,主要包含了預算、嘉賓、時間安排、宣傳、聯絡、現場以及善后等等事宜。會后就依照計劃開始了轟轟烈烈的宣傳,也許是厚顏無恥的宣傳,還到mathworks的新聞組發了一個英文版的邀請函。

  2005年6月19日下午,會議臨近,籌備小組在東華大學舉行了第三次籌備會議,就一些重要事項進行確認,包括參會名額、嘉賓、場地、投影儀等等。那一天很有些不順,我走錯了很多路,遲到了一個多小時。宣傳的實際效果讓我們冷靜了很多,雖然大家比去年的熱情要高,參會人員還不至于有太大的突破。

  2005年7月3日上午,我們在會議前舉行了第四次籌備會議,我們的虛擬團隊又添強人:盧昆(season_color)。大家確定了會議日程,李維剛作為主持人來了一次彩排。當時有一個小插曲,王家文遲到了,因為睡得太晚了。我們簡單統計了一下,前一晚睡覺時間非常巧合,依次為:凌晨零點、一點、兩點、三點、四點。看來大家都是也貓子,晝伏夜出。

  下午的會議一切正常,按照既定計劃,來了三十幾個朋友。總共有六個議題,涉及了MATLAB應用的主要方面。中間預留的40分鐘交流,大家進行了熱烈的交流。很多朋友見到了久仰的牛人,為日后的問題找到了救星。這一次會議,最成功的地方,就是邀請到了嘉賓SCIE,他從天津趕過來,實在不容易,在此也對他表示感謝!

  李維剛的結束語,非常精彩,可惜沒有錄下來。其中有一句話印象深刻:無論MATLAB有多好,無論它有多麻煩,它就是一個存在。就讓它在更多人的工作生活中,存在下去吧!

七、  忙亂

  “明天的連載可能要推遲了,最近工作太忙了。昨天也在加班,實在沒有時間寫。非常抱歉!這兩天項目完了繼續寫,工作還是第一位的,畢竟要生存嘛。希望大家理解!”這是這一節計劃發表前一晚上寫的,事實上這個連載確實推遲了。到上海來,工作一直很忙,占去了很多時間,也打亂了其他計劃。

  也許這就是一種正常的生存狀態吧,不知道是否有更好的辦法?如果你要做很多事情,就必須協調好。而我不太擅長此事,所以在很多事情之間穿梭。常常是同時做兩件事情,計劃著第三件事,夜里想著第四件事。時間長了,反倒習慣了一種忙亂的狀態,可以做很多事情,做好一件馬上就是下一件。只有等到這些都告一段落,就可以好好的放松一下了。

  有一些事情,是在牙齒縫里面那點時間做出來的。就像第一屆MATLAB研討會,大家都很忙,bigrice連星期天也要工作的。大家在這種情況下,依然把兩屆研討會做好了,還是很不容易。今年的研討會,有一點對不起觀眾,就是我的議題實際準備時間非常少。去年還用了兩個小時,今年也就是研討會開會前的半個小時才搞好。還好有一個可以參考的模版,砍掉一半,然后換了一大半新的內容。很慶幸蒙混過關!

  臨近研討會的最后幾天,Okaka邀請我做一個QQ群的管理員。以前很少用QQ和QQ群的,今年發現了QQ群一般聚集了很多專業人士,就加了很多GIS和MATLAB的QQ群。讓我來參與管理QQ群,可以嘗試一下。我就把這個群改名叫“MATLAB高級用戶群(MATLAB for Simwe)”


八、  MATLAB俱樂部

  MATLAB領域已經有十幾個QQ群了,如何發展為一個有特色的社區?這是我們幾個要考慮的問題。“MATLAB高級用戶群”剛開始時,只接受Simwe的高級會員。也就是對MATLAB已經很熟悉的人,才是我們真正需要的人。門檻提高了,發展就比較緩慢,但是我們保持了足夠的耐心。

  采用老套路,拿出誠意,廣發英雄貼。先邀請了幾個牛人,增加向心力。感謝bainhome的吆喝和鼓勵,MATLAB版的五個版主全部都到起了。其中午夜流星比較能磨,也被我給騙進來了。Simwe的MATLAB新生代基本上都聚齊了,滿眼望去,陣營強大。可是一個新的問題出現了,這也是一個通用現象,忙的人都是高手,高手都很忙。如何才能把大家的興趣都吸引到這里來,如何讓這個群體向更高的方向發展?

  隨著Simwe的高級成員的增多,MATLAB的封閉性開始出現了。是否要接受其他論壇的人員?而他們是否能夠接受Simwe的招牌?作為一個MATLAB為主的社區,我們作了一些調整。將這個群定位于MATLAB的專業級用戶交流場所,往虛擬俱樂部的方向發展。征求了群內成員的意見,我們將這個群改名為“MATLAB俱樂部”。

  到目前為止,MATLAB俱樂部的成員都是各個論壇的積極分子。凡是泡論壇的人都知道,業界還沒有一個專門的MATLAB論壇,只能在幾個科技論壇的邊緣處發展。并且每個論壇的用戶群不一樣,有的側重科研,有的側重工程,因此兩大群體缺乏足夠的溝通。雖然我在2003年提出了MATLAB論壇應該加強橫向溝通與合作,可是沒有人響應,到現在也沒有什么改善。

  也許,MATLAB俱樂部,可以開創一個專門的MATLAB論壇,涵蓋各個層次、各個專業的MATLAB愛好者。只有通過我們自身的努力,才能讓將來的MATLAB愛好者不再孤獨,讓MATLAB的影響和應用不再狹窄。這是一個新的難題,期待答案。

九、  遺憾

  這些年,用在MATLAB方面的時間很多,有一些收獲,也有很多遺憾。當然主要原因還是自己不夠努力,讓自己的缺點一直保持為缺陷。MATLAB是一個純英文的平臺,偏偏我的英文很不好。無法與MATLAB的開發者做直接的交流,溝通的障礙,導致了缺乏那個勇氣。

  如果我能夠與Mathworks的人直接溝通,也許能夠了解更多的技術細節。我們對MATLAB的很多困惑,也許就是他們曾經面對的問題。比如Compiler的發展方向,我想當初這些技術工程師也做了很多爭論。如果他們能夠得到一些其他的反饋信息,也許在編譯器方面做得更好。

  時間總是一種稀缺資源,與同行的交流還不夠充分。比如對某些領域的了解,依然很片面。看到很多朋友,對一些相關行業和領域,都能侃侃而談,實在是一種羨慕。數學基礎實在不好,很多算法問題總是想不明白。數學天才們的思維訓練,看來是沒有機會接受了。

  遺憾在繼續,何時有轉機?

十、  蛻變

  隨著對技術的理解加深,有一些看法在逐步轉變。以前以為一個好東西,總能夠保持其優勢。然而現實生活中,技術發展太塊了,僅有這些還不夠。不選擇更新,只有被淘汰,無論是技術,還是做技術的人。

  MATLAB真是一個好工具,也只能是一個好工具。它可以作為一個平臺,承載知識和算法,那么核心的競爭力將是它實現的技術和產品。現在的公司,主營業務是通信軟件。以后的職業規劃,將更多的與通信沾邊了。又是一個陌生的領域,又是一個必須要全力以赴的專業。

  感謝MATLAB帶給我的新思維,技術的路很漫長。回頭只能看到自己的影子,希望明天有明媚的眼光!

點評

很好的帖子,很榮幸能讀到:)  發表于 2012-10-25 14:10
閣下的經歷和作為,freedomandgh深感敬佩,希望繼續努力,我會想你學習  發表于 2011-10-23 21:08
哇,頂  發表于 2011-7-31 22:36
好貼,頂一個  發表于 2011-5-22 13:09
推薦
 樓主| 發表于 2008-12-3 16:59:35 | 只看該作者

寫給Matlab新手的幾句話

作者:不明    轉自 不明

Matlab博大精深,說到底我也只不過是個初學者,只是學的時間比新手長了一點,現在寫幾句給新手,希望能給你們有點幫助

1 學Matlab并不難,難的是學會怎么用。
2不要試圖掌握matlab的每一個功能,熟悉和你專業最相關的部分就可以了。
3 不要問:明天要交作業了,哪位大俠幫忙寫個程序吧,或初學matlab,不懂呀,大哥大姐幫忙寫個程序之類的話
4 不要說:不要讓我看matlab英文的幫助我看不懂--誰都是從不懂到懂的
5 不要擔心:我編程能力差,我一定用不好matlab。
6 不要只問不學
7 學maltab要有耐心
8 看到某本書中或論壇的帖子中解決問題的方法要試著解決類似的問題,要舉一反三,要學會變通
9 有了問題先自己想,察看幫助,1個小時后沒有結果再問別人 ,不要一有問題就發問,然后什么都不管了,把希望寄托在別人身上
10 學會用搜索引擎,在網上可以找到很多資料,有的問題一搜索就能找到的,就不要來問別人了
11多動手寫程序、調試
12 多讀matlab高手寫的程序,帖子,找到一個高手,在幾個大的論壇可以搜索出一大堆的帖子,然后慢慢去看吧,從中可以學到很多東西
13 電腦上復制粘貼很方便,對于別人解決的你專業上的問題,最好自己寫一遍,這樣印象深刻,對于不懂的函數用法的函數,help中查查,能看懂多少算多少,對于程序斷點調試一遍,弄清楚每個語句的功能
14 盡量擺脫c編程的習慣,總愛用循環,能不用的循環的盡量不用,掌握矢量化的精髓
15 善于總結,學習過的知識,看過好的帖子可以收藏起來,過段時間再復習一下,一段時間的積累,你會發現你的水平在慢慢提高
16 多用help,see also lookfor get,set 等常用命令
17 要大膽的去試,試過才知道可不可以,如有人問可不可以把多個子程序放在一個m文件中,呵呵,試試不就知道了
18 多參與討論,不要只關心自己的問題,也經常關注別人的帖子,從中也可以學到不少東西的
先寫這么多吧,希望對新手能有點用
推薦
 樓主| 發表于 2008-12-3 16:57:01 | 只看該作者

Matlab使用的一點兒體會(For Beginner)

作者:Genial(山城棒棒兒軍)    轉自 不明

真正接觸matlab一年左右,我很喜歡上了matlab的簡單的語法,易于繪制圖形,gui編程也非常容易, 并且功能強大的開放式的toolbox。 因此,盡管我一直沒有這方面的應用,但是我還是對它非常感興趣。 現將個人的matlab的一點學習體會列在這里,愿能夠對大家(特別是初學者)起到一點兒微薄的作用也好。

1. help:最有效的命令(參閱了瀚海mathtools的 starrynight網友的文章)

其實,可以這樣說吧,如果離開matlab軟件,我想我自己是基本上什么都不會。 一遇到什么問題,通常我的第一反應是:help ,就先說說自己對help的一些常用方法吧。
1)命令窗口直接敲“help”,你就可以得到本地機器上matlab的基本的幫助信息。
2)對于某些不是很明確的命令,只知道大體所屬范圍,譬如說某個工具箱,直接在命令窗口中敲入help toolboxname,一幫可以得到本工具箱有關的信息:版本號,函數名等。
3)知道函數名,直接用help funname就可以得到相應的幫助信息。

2. see also:不可小瞧的關聯

在用help命令的時候,可能因為我們開始估計的方向不一定完全正確,在列出的幫助信息中沒有直接給出的我們要找的東西,但是我們一定不要忽略了在幫助的最后列出的see also。
譬如:曾經遇到一個畫橢球的問題。剛開始我以為這個命令函數應該在graph3d中給出的(順帶提一句,只用help的時候我們就可以看到matlab\graph3d - Three dimensional graphs. 。于是乎,我又help graph3d,很遺憾,在 Elementary 3-D plots.中我沒有發現畫橢球的函數,但是我發現在see also中有SPECGRAPH. 抱著試試的態度,我又help specgraph,^_^,這次在 Solid modeling 中找到了ellipsoid - Generate ellipsoid。

3. lookfor: matlab中的google

當我們很多什么頭緒都沒有的時候,我們可以求助于它,往往會收到意想不到的效果。
譬如:曾經在gui編程的時候,遇到過這樣一個問題:想拖動鼠標時,要出現一個方框,就像你在桌面上拖動鼠標,會出現虛線框一樣。 當初我也剛開始一定都不知道該查找什么東西,后來想起用它了。于是乎,>> lookfor Rectangle (很不好意思,當時這個矩形我還是在金山詞霸中搞定的-_-)。果然,在其中就找到這樣一條信息:GETRECT Select rectangle with mouse.^_^

4. get,set: GUI object 屬性的幫手

在GUI編程中,我們可能有時候想改變某些object的屬性,或者想讓它安裝自己的想法實現,但是我們又不記得這些object的屬性,更別提怎么設置他們的值了。這時,可以用 get(handles)得到此對象的所有的屬及其當前值。用set(handles)可以得到對象所有可以設置的屬性及其可能的取值。找到我們需要的屬性名字和可能的取值之后,就意義用 get(handles,‘propertyname’)取得此屬性的值,用set(handles,‘propertyname’,values)設置此對象此屬性的值。

5. Edit:查看m源文件的助手

在應用matlab過程中,可能我們想看看它的m源文件,當然用editor定位打開也行,但是我經常采用的式直接在command窗口中用edit funname.m,就省去了定位的麻煩。

6. 其他常用命令:which,what等

which:定位指定的函數和文件,最好帶上參數-all,以便顯示更加多的信息
what: 獲得指定目錄的m文件,mex文件以及mat文件名列表

7. 各個高校bbs的mathtools版

誰都不可能什么都懂,但是永遠記住這樣一句話:Two heads are better than one. 多向他人請教,多相互討論,這不只是在于解決matlab的問題上。
我最經常去的bbs有:
.瀚海星云(http://fbbs.ustc.edu.cn/的mathtools版
.水木清華(http://www.smth.edu.cn/ver2.html的mathtools版
.飲水思源(http://bbs.sjtu.edu.cn/的mathtools版
.紫丁香 (http://bbs.hit.edu.cn/的matlab版

8. 一些專業網站

我所知道的有:
1) http://www.mathworks.com mathworks的官方網站
2) http://www.mathtools.net/MATLAB/index.html 這里有很多好的工具箱或者小的輔助函數可以下載,不過是國外的,e文和網絡對來說感覺都是很不爽的事情。
3) http://matlab.myrice.com/ Matlab大觀園,估計只要在網上搜索過matlab資料的就不會不知道它,園主是東北大學的薛定宇教授,一直從事MATLAB語言及其應用研究。
4) http://passmatlab.myetang.com/MATLAB/INDEX.HTM文宇工作室
5) http://sh.netsh.com/bbs/5186/ matlab語言與應用,薛定宇的一個論壇
6) http://www.matwav.com/resource/newlk.asp中國學術交流園地,除了matlab有關外,還有很多其他的專業的文章。

最后一條,要大膽的去試,哪怕只有一丁點兒可能。

譬如,早些時候,有朋友問我:我用什么命令可以查找所建立網絡的屬性的含義,比如說:我建立網絡
net=newff(minmax(p),[3,1], {'tansig','purelin'},'traingda');
想看看net.trainParam。lr_inc屬性是啥含義用什么命令查看呢?
當時,我根本連練習都沒有用matlab的神經網絡工具箱的東西練習過。我helpnewff也沒有結果,后來實在沒有辦法,就試著help參數值traingda,沒有想到還居然真的就找到答案了。
還有,曾經有朋友想把waitbar的默認顏色的紅色改掉,我用help 沒有發現可以改變其填充色的property,后來我看了waitbar.m,發現其填充色本來就不試一個可變參數,但是既然發現了是什么地方,就可以自己改變的,這都得益于matlab 的開放性。這也為我們提供了很大的靈活性(在他的基礎上,我們可以做很少的變換,就自己寫一個填充色可以以屬性輸入而改變的waitbar的)。

最后,matlab只是一個很好的應用工具而已,也不像vc,delphi,vb等開發工具,最多的還是應用于算法的驗證,仿真等。我們應該的是盡可能的知道一點兒基礎的,然后熟悉本專業的toolbox。(可惜,我現在一直沒有這樣的實際應用機會)

點評

很有幫助,謝謝!  發表于 2011-10-8 14:32
推薦
 樓主| 發表于 2008-12-3 16:58:10 | 只看該作者

Matlab學習體會和總結

作者:未知      轉自 SimWe仿真論壇

要說體會,我可以總結以下幾條:
1. 多動手寫程序、調試
2. 善于利用MATLAB的幫助
3. 善于向別人學習
4. 時間積累

*多動手寫程序、調試
如果懶得寫程序,調試程序,永遠無法提高。我個人認為調試程序更重要。有些朋友可能在一個程序調試幾下出不了結果時,就可能喜歡去問別人,我不太贊同這一做法。其實,凡事往往經過痛苦折磨后,才會讓你印象深刻,收益更大。我建議在你覺得用盡你努力后,仍然無法有結果時,才去請教別人。我當初一個程序調試過一兩個星期都有過。在這論壇上,你可以發現不少好的問題,對這些問題,不要光看別人如果解決,也不要光想怎么解決,自己坐下來,動手自己解決一下,那你就會把不是你的知識變成自己的知識。

*善于利用MATLAB的幫助
可以這么說,任何問題都可以在MATLAB的幫助里找到解決的辦法。問題不論大小,都是由更小的問題組成,把大問題化為小問題,小函數,然后再到MATLAB幫助里去找這種小問題,小函數的用法。說實話,MATLAB里的函數太多,我也經常忘記一些用法,這時HELP就幫忙了。

*善于向別人學習
在你解決一個問題后,你可能會發現別人有更簡便的方法解決,更強的函數,就時就是你向別人學習的時候。說實話,在這論壇上,我也向bzzz, bainhome等學習借鑒不少。

*時間積累
時間長了,積累多了,當然也就有進步了。呵呵,也許再過幾年,你會發現原來問題也不是以前想的那么難。而lyrock在這里發的也是“打糊亂說,小兒科”,那時你就已經積累不少了。
推薦
發表于 2009-2-17 08:27:43 | 只看該作者
真是萬分感激樓主的良苦用心!做為新手的我打算延著樓主的話去做!希望能學好!
7
發表于 2009-2-9 11:13:26 | 只看該作者
它山之石可以攻玉,借鑒經驗也是一種不錯的學習途徑。
8
發表于 2009-2-12 16:30:33 | 只看該作者

感謝樓主

樓上幾位前輩
實為經典
  盼有招一日 能與前輩一樣
發表 經驗談
9
發表于 2009-2-16 20:48:43 | 只看該作者
受益匪淺,很好的帖子
10
發表于 2009-2-20 19:02:56 | 只看該作者
多好的經驗啊,謝謝樓主的分享。
您需要登錄后才可以回帖 登錄 | 注冊賬號

本版積分規則

QQ|網站地圖|MATLAB技術論壇|Simulink仿真論壇 ( 蜀ICP備19014457號 

GMT+8, 2019-7-23 14:32 , Processed in 0.103525 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表
传奇电子琴弹奏
香港本港台4肖3期必出 重庆时时猜龙虎走秘籍 十元夺宝猜大小 澳门娱乐 通比牛牛游戏网站 重庆时时必中计划 赚的十一选五技巧 天津时时快乐十分记录 任我赢pk10软件 老时时彩历史开奖记录 江西11选5前三组选计划软件 北京pk10免费计划软件 鱼丸游戏飞禽走兽 干什么生意稳赚不赔 极速时时官方开奖号码 时时彩平台一条龙