=23);y(index1)=1;index2=find(xcase6RI=1 24;case7RI=1 32;cas" />

王牌对王牌第一季综艺,黄视频在线观看网站,世界一级毛片,成人黄色免费看

薈聚奇文、博采眾長、見賢思齊
當前位置:公文素材庫 > 計劃總結(jié) > 工作總結(jié) > matlab 學習總結(jié)

matlab 學習總結(jié)

網(wǎng)站:公文素材庫 | 時間:2019-05-28 22:09:40 | 移動端:matlab 學習總結(jié)

matlab 學習總結(jié)

1、Matlab軟件中的ifelse語句中可以轉(zhuǎn)化成functiony=member_ship(x)y=zeros(size(x));index1=find(x>=23);y(index1)=1;

index2=find(xcase6

RI=1.24;case7

RI=1.32;case8

RI=1.41;case9

RI=1.45;otherwise

disp("數(shù)據(jù)錯誤!")returnend

[P_A,lamda_A]=eig(A);%求A的特征值和特征向量

[value,k]=max(max(lamda_A));%取最大特征值和其所對應的位置omega_A=P_A(:,k)/sum(P_A(:,k));%取最大特征向量,并進行規(guī)一化處理CI_A=(value-n)/(n-1);%一致性指標

CR_A=CI_A/RI;%一致性比率將函數(shù)保存后,輸入下面的程序運行即可:%%%%%%%%%------輸入判斷矩陣A=[1,3,2,7,5;1/3,1,1/2,5,2;1/2,2,1,4,2;1/7,1/5,1/4,1,1/3;1/5,1/2,1/2,3,1];

B1=[1,2,3;1/2,1,2;1/3,1/2,1];B2=[1,1/3,1;3,1,2;1,1/2,1];B3=[1,1/2,1/4;2,1,1/3;4,3,1];B4=[1,1,4;1,1,3;1/4,1/3,1];B5=[1,1/5,1/2;5,1,3;2,1/3,1];

%%%%%%%%%%%------------計算各個判斷矩陣的排序權(quán)值和一致性指標[omega_A,CR_A,CI_A]=weight_fun(A)[omega_B1,CR_B1,CI_B1]=weight_fun(B1)[omega_B2,CR_B2,CI_B2]=weight_fun(B2)[omega_B3,CR_B3,CI_B3]=weight_fun(B3)[omega_B4,CR_B4,CI_B4]=weight_fun(B4)[omega_B5,CR_B5,CI_B5]=weight_fun(B5)%%%%%------------求B層的層次總排序

omega=[omega_B1,omega_B2,omega_B3,omega_B4,omega_B5]%Bi對A的排序權(quán)值表[n,m]=size(B1);order_B=zeros(1,n);fori=1:n

order_B(i)=sum(omega(i,:).*omega_A");%計算層次C總排序數(shù)值endorder_B

CI=[CI_B1;CI_B2;CI_B3;CI_B4;CI_B5];

CR=sum(CI.*omega_A)/sum(0.58.*omega_A)%計算隨機一致性指標

擴展閱讀:matlab學習心得體會

最近在學習matlab,一直不入其法門。從網(wǎng)上看到了一些大蝦的經(jīng)驗心得,感觸頗深,轉(zhuǎn)貼過來,希望給初學者有一定的指引。

一)寫給學習matlab的新手們作者:eight(八)來源振動論壇

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

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

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

Matlab是一個基于矩陣運算的軟件,這恐怕是眾所周知的事情了,但是,真正在運用的時候(就是在編程的時候),許多人(特別是初學者)往往沒有注意到這個問題,因此,for循環(huán)(包括while循環(huán))滿天飛..這不僅是暴殄天物(沒有發(fā)揮matlab所長),還浪費了你寶貴的時間。對此,版友MVH在他的“MATLAB小技巧”一文中也有所涉及,雷同的東西我也就不重復了,matlab的“幫助”里面也有相關(guān)的指示。我這里想說的一點是,初學者往往在初始化矩陣的時候注意到這個問題,懂得了使用矩陣而不是循環(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

上面的代碼實現(xiàn)了一個目的——檢查信號imf1(一個向量)是否存在絕對值大于1的點,這顯然是基于C++的思想寫出來的。如果在matlab下面,其實用兩個語句就足夠了(當然,可以合并為一個):

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的語言(基于矩陣的思想)來改進。當然,這樣做的前提是你對matlab提供的一些函數(shù)比較熟悉才行,這些函數(shù)在matlab的“幫助”那里搜索“FunctionsUsedinVectorizing”就可以找到一些,其他的也可以找相關(guān)的書籍(沒找到?不可能,電子版總可以下載到的)

對提高matlab編程能力的方法,我想主要有以下三個:1.查help

2.多上上論壇,搜索帖子、發(fā)帖子問人3.閱讀別人、特別是牛人的程序

當然了,正如所有的程序語言一樣,“3分課本7分上機”,一定要動手才行,不能光看。多想、多思考、多嘗試,才是正路。

最后,整理一下常用的快捷鍵(用【】表示)或命令:1.在命令窗口(CommandWindow)中:

1)【上、下鍵】——切換到之前、之后的命令,可以重復按多次來達到你想要的命令

2)clc——清除命令窗口顯示的語句,此命令并不清空當前工作區(qū)的變量,僅僅是把屏幕上顯示出來的語句清除掉

3)clear——這個才是清空當前工作區(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程序運行過程中,可能由于程序編寫的失誤,導致程序不停的運行,在命令窗口輸入“Ctrl+C”可以將運行的程序停下來,而不需要將整個Matlab程序關(guān)掉。不過進行此操作的前提是能夠激活切換到命令窗口才行,呵呵。2.在編輯器(Editor)中:

1)【Tab】(或【Ctrl+]】)——增加縮進(對多行有效)2)【Ctrl+[】--減少縮進(對多行有效)

3)【Ctrl+I】--自動縮進(即自動排版,對多行有效)4)【Ctrl+R】——注釋(對多行有效)5)【Ctrl+T】——去掉注釋(對多行有效)

6)【Ctrl+B】——括號配對檢查(對版本6.5有效,但版本7.0無效,不知道是取消了還是換了另外的快捷鍵,請大牛們指點,其他版本沒有測試過)7)【F12】——設(shè)置或取消斷點8)【F5】——運行程序

其余的例如在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的接口,想詳細介紹如何利用matcom4.5在C++Builder中調(diào)用matlab的代碼以及matcom的一些技巧。由于我不是搞項目開發(fā)的(搞科研、搞課題的),所以對VC不熟悉,大學的時候?qū)W過一點,不過我想對于搞科研來說C++Builder就足夠了,免去很多麻煩,Builder在界面設(shè)計和數(shù)據(jù)庫連接上面(我只接觸過這兩方面)還是做得不錯的。同樣,如果發(fā)現(xiàn)其他書籍上有類似的東西就不寫了3)GUI方面也寫寫吧,只是一點點心得或者體會,呵呵,這個相對簡單些,篇幅相對要少些。

真正接觸matlab一年左右,我很喜歡上了matlab的簡單的語法,易于繪制圖形,gui編

程也非常容易,

并且功能強大的開放式的toolbox。因此,盡管我一直沒有這方面的應用,但是我還是對

它非常感興趣。現(xiàn)

將個人的matlab的一點學習體會列在這里,愿能夠?qū)Υ蠹?特別是初學者)起到一點兒微薄的作用也好。

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

其實,可以這樣說吧,如果離開matlab軟件,我想我自己是基本上什么都不會。一遇

到什么問題,通常

我的第一反應是:help,就先說說自己對help的一些常用方法吧。1)命令窗口直接敲“help”,你就可以得到本地機器上matlab的基本的幫助信息。

2)對于某些不是很明確的命令,只知道大體所屬范圍,譬如說某個工具箱,直接在

命令窗口中敲入

helptoolboxname,一幫可以得到本工具箱有關(guān)的信息:版本號,函數(shù)名等。3)知道函數(shù)名,直接用helpfunname就可以得到相應的幫助信息。

2.seealso:不可小瞧的關(guān)聯(lián)

在用help命令的時候,可能因為我們開始估計的方向不一定完全正確,在列出的幫

助信息中沒有直接

給出的我們要找的東西,但是我們一定不要忽略了在幫助的最后列出的seealso。譬如:曾經(jīng)遇到一個畫橢球的問題。剛開始我以為這個命令函數(shù)應該在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

當我們很多什么頭緒都沒有的時候,我們可以求助于它,往往會收到意想不到的效果。

譬如:曾經(jīng)在gui編程的時候,遇到過這樣一個問題:想拖動鼠標時,要出現(xiàn)一個方

框,就像你在桌面

上拖動鼠標,會出現(xiàn)虛線框一樣。當初我也剛開始一定都不知道該查找什么東西,后來

想起用它了。于是乎,>>lookforRectangle(很不好意思,當時這個矩形我還是在金山詞霸中搞定的-_-)

。果然,在其中就找到

這樣一條信息:GETRECTSelectrectanglewithmouse.^_^

4.get,set:GUIobject屬性的幫手

在GUI編程中,我們可能有時候想改變某些object的屬性,或者想讓它安裝自己的

想法實現(xiàn),但是我們又不

記得這些object的屬性,更別提怎么設(shè)置他們的值了。這時,可以用get(handles)得

到此對象的所有的屬性

及其當前值。用set(handles)可以得到對象所有可以設(shè)置的屬性及其可能的取值。找

到我們需要的屬性名字和

可能的取值之后,就意義用get(handles,‘propertyname’)取得此屬性的值,

用set(handles,‘propertyname’,values)設(shè)置此對象此屬性的值。

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

在應用matlab過程中,可能我們想看看它的m源文件,當然用editor定位打開也行,

但是我經(jīng)常采用的式直接

在command窗口中用editfunname.m,就省去了定位的麻煩。

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

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

7.各個高校bbs的mathtools版

誰都不可能什么都懂,但是永遠記住這樣一句話: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資料的就不會不知道它,園主

是東北大學的薛定宇教授,一直從事MATLAB語言及其應用研究。4)文宇工作室

5)matlab語言與應用,薛定宇的一個論壇6)中國學術(shù)交流園地,除了matlab有關(guān)外,還有很多其他的專業(yè)的文章。

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

譬如,早些時候,有朋友問我:我用什么命令可以查找所建立網(wǎng)絡(luò)的屬性的含義,比如說:我建立網(wǎng)絡(luò)net=newff(minmax(p),[3,1],

{"tansig","purelin"},"traingda");想看看net.trainParam。lr_inc屬性是啥含義用什

么命令查看呢?

當時,我根本連練習都沒有用matlab的神經(jīng)網(wǎng)絡(luò)工具箱的東西練習過。我helpnewff也沒有結(jié)果,

后來實在沒有辦法,就試著help參數(shù)值traingda,沒有想到還居然真的就找到答案了。

還有,曾經(jīng)有朋友想把waitbar的默認顏色的紅色改掉,我用help沒有發(fā)現(xiàn)可以改

變其填充色的property,后來

我看了waitbar.m,發(fā)現(xiàn)其填充色本來就不試一個可變參數(shù),但是既然發(fā)現(xiàn)了是什么地方

,就可以自己改變的,這都得益于matlab

的開放性。這也為我們提供了很大的靈活性(在他的基礎(chǔ)上,我們可以做很少的變換,

就自己寫一個填充色可以以屬性輸入而改變的waitbar的)

友情提示:本文中關(guān)于《matlab 學習總結(jié)》給出的范例僅供您參考拓展思維使用,matlab 學習總結(jié):該篇文章建議您自主創(chuàng)作。

來源:網(wǎng)絡(luò)整理 免責聲明:本文僅限學習分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時刪除。


matlab 學習總結(jié)》由互聯(lián)網(wǎng)用戶整理提供,轉(zhuǎn)載分享請保留原作者信息,謝謝!
鏈接地址:http://www.taixiivf.com/gongwen/625781.html