Matlab學(xué)習(xí)總結(jié)
1.
(1)復(fù)數(shù)表示:z1=8+10i;按照直角坐標(biāo)的方式輸入
z2=12+6*i;運(yùn)算符構(gòu)成的直角坐標(biāo)的方式輸入
z3=25*exp(i*pi/3);
(2)2^3表示23
(3)一維數(shù)組創(chuàng)建方法:代碼運(yùn)算符構(gòu)成的極坐標(biāo)的方式輸入(z3=25e3)
i表示data1=[pi;long(5);7+6;2^3]創(chuàng)建一維數(shù)組data2=[pilong(5)7+62^3]data3=2:2:10data4=2:10data3數(shù)組(第一個元素:步長:最后一個元素)默認(rèn)步長為1data3=246810data4=2345678910x=linspace(a,b,n),定數(shù)線性采樣,a,b數(shù)組第一個和最后一個元素,n采樣點(diǎn)個數(shù)。在設(shè)定總個數(shù)的前提下,均勻分布生成一維行數(shù)組。x=logspace(a,b,n),定數(shù)對數(shù)采樣data5=246810data6=1.0e+005*0.00010.00030.00080.00220.00600.01670.04640.12920.35941.0000表示Data1=123456789表示結(jié)果:data5=linspace(2,10,5)data6=logspace(1,5,10)二維數(shù)組創(chuàng)建方法:代碼Data1=[123456789]Data2=[1,2,3;4,5,6;7,8,9]代碼A(2,2,2)=1;>>fori=1:2;forj=1:2;fork=1:2;A(i,j,k)=i+j+k;endendend2.數(shù)值顯示格式:命令說明舉例三維數(shù)組創(chuàng)建方法(1.使用下標(biāo)創(chuàng)建):formatformatshortformatlongformatshorteformatlongeFormatshortgformatlonggformatratformathexformatbank顯示的小數(shù)有效位4-7位256.375顯示為256.3750大于1000的數(shù)值,用5位有效數(shù)字的科2563.75顯示為2.5638e+003學(xué)記數(shù)形式來表示15位數(shù)字表示5位科學(xué)記數(shù)表示15位科學(xué)記數(shù)表示從formatshort和formatshorte中選擇最佳的記數(shù)方式2.563753324578902.5638e+002.56375332457890e+002.5638從formatlong和formatlonge中選擇最佳2.563753324578901的記數(shù)方式用近似有理數(shù)表示用十六進(jìn)制數(shù)表示使用金融數(shù)據(jù)3579/1396400482911a609f082.56
3.常見標(biāo)點(diǎn)功能:名稱空格分號冒號逗號黑點(diǎn)注釋號方括號續(xù)行號3.變量:變量expansepsinf(Inf)piNaN(nan)
4.控制命令:命令clfclctypeclear功能清除圖形窗清除命令窗口中的顯示內(nèi)容顯示指定M文件的內(nèi)容清除Matlab工作空間中保存的變量,如:cleara;(清除變量a)含義指數(shù)函數(shù)exp(0)=1計算結(jié)果的默認(rèn)名稱計算機(jī)的零閾值無窮大圓周率表示結(jié)果或變量不是數(shù)值標(biāo)點(diǎn);:,.%[]……作用輸入變量之間的間隔,數(shù)組元素的分隔符命令結(jié)束,同時不顯示結(jié)果,數(shù)組元素的行間分隔符生成一維數(shù)值數(shù)組輸入變量之間的間隔,數(shù)組元素的分隔符數(shù)值中的小數(shù)點(diǎn)注釋數(shù)組由三個或三個以上的黑點(diǎn)組成,標(biāo)號使下行是該行的繼續(xù),構(gòu)成整體exit/quit退出Matlab
擴(kuò)展閱讀:matlab學(xué)習(xí)心得體會
最近在學(xué)習(xí)matlab,一直不入其法門。從網(wǎng)上看到了一些大蝦的經(jīng)驗(yàn)心得,感觸頗深,轉(zhuǎn)貼過來,希望給初學(xué)者有一定的指引。
一)寫給學(xué)習(xí)matlab的新手們作者:eight(八)來源振動論壇
本人接觸matlab已經(jīng)有5年多的時間了,一直想寫點(diǎn)東西,但是之前不知道放在哪里才能發(fā)揮它的最大作用,直到幾天前碰上了這個論壇(有點(diǎn)像諸葛亮遇見姜維,哈哈)。
廢話不說,我想借貴論壇寶地,寫一些經(jīng)驗(yàn)給使用matlab的新手們,當(dāng)然了,老大們也可以看看,不嫌棄我寫得粗糙的話還可以指點(diǎn)一下,先謝過了~~~~
首先我想說的是,matlab跟其他語言不一樣(我用的比較多的編程語言,除了matlab就應(yīng)該是c或c++了,VB和Delphi也接觸過,我想版面(matlab版)大部分人也差不多),如果你抱著“把其他語言的思想運(yùn)用在matlab里面”的話,那么我想,即使程序運(yùn)行不出錯,也很難把握matlab的精髓,也就很難發(fā)揮matlab的作用了。所以,如果你是希望matlab作為VC的附屬品,即你不想在matlab上面花太多功夫,只純粹想用matlab來完成VC做不了或很難做成的任務(wù)的話,那么,這篇文章你也不需要再閱讀下去了;如果你是希望掌握一門語言、一個工具,使它更有效為你服務(wù)的話,那么,希望本文對你有所幫助。
Matlab是一個基于矩陣運(yùn)算的軟件,這恐怕是眾所周知的事情了,但是,真正在運(yùn)用的時候(就是在編程的時候),許多人(特別是初學(xué)者)往往沒有注意到這個問題,因此,for循環(huán)(包括while循環(huán))滿天飛..這不僅是暴殄天物(沒有發(fā)揮matlab所長),還浪費(fèi)了你寶貴的時間。對此,版友MVH在他的“MATLAB小技巧”一文中也有所涉及,雷同的東西我也就不重復(fù)了,matlab的“幫助”里面也有相關(guān)的指示。我這里想說的一點(diǎn)是,初學(xué)者往往在初始化矩陣的時候注意到這個問題,懂得了使用矩陣而不是循環(huán)來賦值,但是,在其他環(huán)節(jié)上,就很容易疏忽,或者說,仍然沒有擺脫C++的思想。舉個例子吧,下面的代碼是我的一個師弟寫的,我想他接觸matlab也有2、3年時間了(在此說明一下,接觸2、3年并不是表示每天都會跟matlab打交道,我本人也不是,只是在一年某幾個時間段里面連續(xù)使用),但是仍然會出現(xiàn)類似的問題:
J=0;
lt=size(imf1,2);for(i=1:lt)
if(abs(imf1(i))>1)J=1;breakendend
上面的代碼實(shí)現(xiàn)了一個目的——檢查信號imf1(一個向量)是否存在絕對值大于1的點(diǎn),這顯然是基于C++的思想寫出來的。如果在matlab下面,其實(shí)用兩個語句就足夠了(當(dāng)然,可以合并為一個):
q=find(imf1>1);J=~isempty(q);
這樣的修改帶來的好處是很可觀的。
又如:
forj=1:num
imf1(start1+j)=2*li1(j+1)-imf1(start1+j);end
這是一個對稱翻折的問題,它完全可以用以下這個語句簡潔表示:imf1(start1+1:start1+num)=2*li1(2:num+1)-imf1(start1+1:start1+num);
因此,如果是新手,可以先用循環(huán)(基于C++的思想)來編寫代碼,然后看看能否用matlab的語言(基于矩陣的思想)來改進(jìn)。當(dāng)然,這樣做的前提是你對matlab提供的一些函數(shù)比較熟悉才行,這些函數(shù)在matlab的“幫助”那里搜索“FunctionsUsedinVectorizing”就可以找到一些,其他的也可以找相關(guān)的書籍(沒找到?不可能,電子版總可以下載到的)
對提高matlab編程能力的方法,我想主要有以下三個:1.查help
2.多上上論壇,搜索帖子、發(fā)帖子問人3.閱讀別人、特別是牛人的程序
當(dāng)然了,正如所有的程序語言一樣,“3分課本7分上機(jī)”,一定要動手才行,不能光看。多想、多思考、多嘗試,才是正路。
最后,整理一下常用的快捷鍵(用【】表示)或命令:1.在命令窗口(CommandWindow)中:
1)【上、下鍵】——切換到之前、之后的命令,可以重復(fù)按多次來達(dá)到你想要的命令
2)clc——清除命令窗口顯示的語句,此命令并不清空當(dāng)前工作區(qū)的變量,僅僅是把屏幕上顯示出來的語句清除掉
3)clear——這個才是清空當(dāng)前工作區(qū)的變量命令,常用語句clearall來完成
4)【Tab】鍵——(轉(zhuǎn)自版友心燈)在matlab@hit.edu.cn看到的:在command窗口,輸入一個命令的前幾個字符,然后按tab鍵,會彈出前面含這幾個字符的所有命令,找到你要的命令,回車,就可以自動完成。目前討論結(jié)果是:matlab6.5版本中,如果候選命令超過100個,則不顯示。而在matlab7以后版本中,則沒有這個限制,均可正常提示5)【Ctrl+C】(或【Ctrl+Break】)——(轉(zhuǎn)自版友yangjin_ren)在matlab程序運(yùn)行過程中,可能由于程序編寫的失誤,導(dǎo)致程序不停的運(yùn)行,在命令窗口輸入“Ctrl+C”可以將運(yùn)行的程序停下來,而不需要將整個Matlab程序關(guān)掉。不過進(jìn)行此操作的前提是能夠激活切換到命令窗口才行,呵呵。2.在編輯器(Editor)中:
1)【Tab】(或【Ctrl+]】)——增加縮進(jìn)(對多行有效)2)【Ctrl+[】--減少縮進(jìn)(對多行有效)
3)【Ctrl+I】--自動縮進(jìn)(即自動排版,對多行有效)4)【Ctrl+R】——注釋(對多行有效)5)【Ctrl+T】——去掉注釋(對多行有效)
6)【Ctrl+B】——括號配對檢查(對版本6.5有效,但版本7.0無效,不知道是取消了還是換了另外的快捷鍵,請大牛們指點(diǎn),其他版本沒有測試過)7)【F12】——設(shè)置或取消斷點(diǎn)8)【F5】——運(yùn)行程序
其余的例如在Debug狀態(tài)下的快捷鍵就不多說了,自己看菜單Debug吧
累了,有時間再寫吧。希望大家多交流~~~~~~
Coming:(以下東西都是一年前做的了,不知道能否記起,呵呵)
1)關(guān)于神經(jīng)網(wǎng)絡(luò)的——調(diào)用matlab的nntool命令后的使用問題(我做的時候沒有看過其他書籍或資料,是自己閉門造車的結(jié)果,如果寫之前發(fā)現(xiàn)其他書籍有相關(guān)介紹的話就不寫了)
2)關(guān)于外部接口的——matlab與C++Builder的接口,想詳細(xì)介紹如何利用matcom4.5在C++Builder中調(diào)用matlab的代碼以及matcom的一些技巧。由于我不是搞項(xiàng)目開發(fā)的(搞科研、搞課題的),所以對VC不熟悉,大學(xué)的時候?qū)W過一點(diǎn),不過我想對于搞科研來說C++Builder就足夠了,免去很多麻煩,Builder在界面設(shè)計和數(shù)據(jù)庫連接上面(我只接觸過這兩方面)還是做得不錯的。同樣,如果發(fā)現(xiàn)其他書籍上有類似的東西就不寫了3)GUI方面也寫寫吧,只是一點(diǎn)點(diǎn)心得或者體會,呵呵,這個相對簡單些,篇幅相對要少些。
真正接觸matlab一年左右,我很喜歡上了matlab的簡單的語法,易于繪制圖形,gui編
程也非常容易,
并且功能強(qiáng)大的開放式的toolbox。因此,盡管我一直沒有這方面的應(yīng)用,但是我還是對
它非常感興趣,F(xiàn)
將個人的matlab的一點(diǎn)學(xué)習(xí)體會列在這里,愿能夠?qū)Υ蠹?特別是初學(xué)者)起到一點(diǎn)兒微薄的作用也好。
1.help:最有效的命令(參閱了瀚海mathtools的starrynight網(wǎng)友的文章)
其實(shí),可以這樣說吧,如果離開matlab軟件,我想我自己是基本上什么都不會。一遇
到什么問題,通常
我的第一反應(yīng)是:help,就先說說自己對help的一些常用方法吧。1)命令窗口直接敲“help”,你就可以得到本地機(jī)器上matlab的基本的幫助信息。
2)對于某些不是很明確的命令,只知道大體所屬范圍,譬如說某個工具箱,直接在
命令窗口中敲入
helptoolboxname,一幫可以得到本工具箱有關(guān)的信息:版本號,函數(shù)名等。3)知道函數(shù)名,直接用helpfunname就可以得到相應(yīng)的幫助信息。
2.seealso:不可小瞧的關(guān)聯(lián)
在用help命令的時候,可能因?yàn)槲覀冮_始估計的方向不一定完全正確,在列出的幫
助信息中沒有直接
給出的我們要找的東西,但是我們一定不要忽略了在幫助的最后列出的seealso。譬如:曾經(jīng)遇到一個畫橢球的問題。剛開始我以為這個命令函數(shù)應(yīng)該在graph3d中給
出的(順帶提一句,
只用help的時候我們就可以看到matlab\\graph3d-Threedimensionalgraphs.。于是乎,我又helpgraph3d,很遺憾,在Elementary3-Dplots.中我沒有發(fā)現(xiàn)畫橢球的函數(shù),但是
我發(fā)現(xiàn)在seealso中
有SPECGRAPH.抱著試試的態(tài)度,我又helpspecgraph,^_^,這次在Solidmodeling中找到了
ellipsoid-Generateellipsoid。
3.lookfor:matlab中的google
當(dāng)我們很多什么頭緒都沒有的時候,我們可以求助于它,往往會收到意想不到的效果。
譬如:曾經(jīng)在gui編程的時候,遇到過這樣一個問題:想拖動鼠標(biāo)時,要出現(xiàn)一個方
框,就像你在桌面
上拖動鼠標(biāo),會出現(xiàn)虛線框一樣。當(dāng)初我也剛開始一定都不知道該查找什么東西,后來
想起用它了。于是乎,>>lookforRectangle(很不好意思,當(dāng)時這個矩形我還是在金山詞霸中搞定的-_-)
。果然,在其中就找到
這樣一條信息:GETRECTSelectrectanglewithmouse.^_^
4.get,set:GUIobject屬性的幫手
在GUI編程中,我們可能有時候想改變某些object的屬性,或者想讓它安裝自己的
想法實(shí)現(xiàn),但是我們又不
記得這些object的屬性,更別提怎么設(shè)置他們的值了。這時,可以用get(handles)得
到此對象的所有的屬性
及其當(dāng)前值。用set(handles)可以得到對象所有可以設(shè)置的屬性及其可能的取值。找
到我們需要的屬性名字和
可能的取值之后,就意義用get(handles,‘propertyname’)取得此屬性的值,
用set(handles,‘propertyname’,values)設(shè)置此對象此屬性的值。
5.Edit:查看m源文件的助手
在應(yīng)用matlab過程中,可能我們想看看它的m源文件,當(dāng)然用editor定位打開也行,
但是我經(jīng)常采用的式直接
在command窗口中用editfunname.m,就省去了定位的麻煩。
6.其他常用命令:which,what等
which:定位指定的函數(shù)和文件,最好帶上參數(shù)-all,以便顯示更加多的信息what:獲得指定目錄的m文件,mex文件以及mat文件名列表
7.各個高校bbs的mathtools版
誰都不可能什么都懂,但是永遠(yuǎn)記住這樣一句話:Twoheadsarebetterthanone.多向他人請教,多相
互討論,這不只是在于解決matlab的問題上。我最經(jīng)常去的bbs有:
.瀚海星云(的mathtools版
.水木清華(的mathtools版.飲水思源(的mathtools版.紫丁香(的matlab版
8.一些專業(yè)網(wǎng)站
我所知道的有:
1)mathworks的官方網(wǎng)站
2)這里有很多好的工具箱或者
小的輔助函數(shù)
可以下載,不過是國外的,e文和網(wǎng)絡(luò)對來說感覺都是很不爽的事情。3)Matlab大觀園,估計只要在網(wǎng)上搜索過matlab資料的就不會不知道它,園主
是東北大學(xué)的薛定宇教授,一直從事MATLAB語言及其應(yīng)用研究。4)文宇工作室
5)matlab語言與應(yīng)用,薛定宇的一個論壇6)中國學(xué)術(shù)交流園地,除了matlab有關(guān)外,還有很多其他的專業(yè)的文章。
最后一條,要大膽的去試,哪怕只有一丁點(diǎn)兒可能。
譬如,早些時候,有朋友問我:我用什么命令可以查找所建立網(wǎng)絡(luò)的屬性的含義,比如說:我建立網(wǎng)絡(luò)net=newff(minmax(p),[3,1],
{"tansig","purelin"},"traingda");想看看net.trainParam。lr_inc屬性是啥含義用什
么命令查看呢?
當(dāng)時,我根本連練習(xí)都沒有用matlab的神經(jīng)網(wǎng)絡(luò)工具箱的東西練習(xí)過。我helpnewff也沒有結(jié)果,
后來實(shí)在沒有辦法,就試著help參數(shù)值traingda,沒有想到還居然真的就找到答案了。
還有,曾經(jīng)有朋友想把waitbar的默認(rèn)顏色的紅色改掉,我用help沒有發(fā)現(xiàn)可以改
變其填充色的property,后來
我看了waitbar.m,發(fā)現(xiàn)其填充色本來就不試一個可變參數(shù),但是既然發(fā)現(xiàn)了是什么地方
,就可以自己改變的,這都得益于matlab
的開放性。這也為我們提供了很大的靈活性(在他的基礎(chǔ)上,我們可以做很少的變換,
就自己寫一個填充色可以以屬性輸入而改變的waitbar的)
友情提示:本文中關(guān)于《Matlab學(xué)習(xí)總結(jié)》給出的范例僅供您參考拓展思維使用,Matlab學(xué)習(xí)總結(jié):該篇文章建議您自主創(chuàng)作。
來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時刪除。