Matlab與Word無縫連接_Notebook


Notebook簡單介紹:

Matlab從5.0版本起加入了Notebook功能,集合了Word和Matlab;此時Notebook就像一個會計算的文本稿,它兼有Matlab和Word的優點,工作方式如下:

在Word中創建命令------Matlab后台執行------結果返回Word顯示;


Notebook的配置與啟動:

一、Notebook的配置:個人系統只要安裝正確的Matlab5.0和Word97以上的版本,一般都會正確安裝Notebook;

在Matlab的命令窗口輸入:notebook -setup

出現如下的結果即為安裝正確;

Welcome to the utility for setting up the MATLAB Notebook
for interfacing MATLAB to Microsoft Word

Setup complete

二、Notebook的啟動:

首先創建新的notebook:

(1)在Word中直接創建Notebook,新建一個Word,單擊Word窗口的菜單“文件”---“新建”---“我的模板”---“M-book”---“文檔”---“確定”即可;對比沒有安裝Notebook的文檔,M-book多了一個加載項的內容;

(2)在Matlab中創建Notebook,窗口左下角依次單擊Start---“Matlab”---“notebook”;

(3)在Matlab的命令行創建一個Notebook,在窗口直接輸入notebook就可以創建一個沒有命名的notebook;輸入notebook filename既可以創建一個命名好的notebook文件;

打開已有的notebook:

(1)Word默認窗口中可以打開,與Word相同,系統會開啟一個Matlab作為其運行平台;

(2)在Matlab當前路徑中可以打開,系統會開啟一個新的Matlab作為其運行平台;

(3)在資源管理器中打開,無論Matlab打開還是沒有打開,系統仍然會開一個Matlab作為其工作平台;

(4)在Matlab的命令窗口中打開,使用如下命令notebook('filename.doc'),注意.doc一定要加上,而且會把當前的Matlab作為其工作平台;


M-book模板的使用:

細胞和細胞群的概念:在Notebook中,所有參與Matlab和Word之間進行信息交換的部分都成為細胞或者細胞群,在Word文檔中選中並且輸入Matlab運行的部分稱為輸入細胞,經過Matlab運行以后返回的輸出結果稱為輸出細胞。各種選項都在“加載項”---“notebook”的下拉菜單里面。有輸出細胞就一定會有輸入細胞,但是有輸入細胞不一定有輸出細胞;

基本操作:Word中的輸入細胞變為可運行的代碼,就相當於是把代碼復制粘貼到Matlab命令行中,然后得到結果在復制粘貼到Word中,而我們這里的notebook就是省去了復制粘貼的過程;輸入細胞必須在英文狀態下輸入,如果在.m文件中,會給出紅色的提示,而在notebook中不會給出任何提示;不管文本中代碼一行有多長,或者有多少行,只要鼠標能夠將其選中,這些都可以在Matlab工作平台上面進行運行;

實際操作:

“選中代碼”---“notebook”---“Define Input Cell"---“無論原來什么字體,這時都會變為10號的綠色字體,這時還有快捷鍵Alt+D,這只是將其變為輸入細胞,不會有輸出結果”

 “選中代碼”---“右鍵”---“Evaluate cells"---“無論原來什么字體,這時都會變為10號的綠色字體,這時還有快捷鍵Ctrl+Enter,輸入細胞變為綠色,輸出結果變為藍色”


Notebook各選項的功能和使用方法 :

 一、Define Autolnit Cell:

(1)自動初始化細胞:當打開一個notebook的時候,文件內包含的初始化細胞就會調入到Matlab中運行,輸出運行結果。將輸入細胞變為自動初始化細胞的方法是選中“notebook”---“Define Autolnit Cell”。

(2)工作內存的初始化:notebook的輸入細胞在Matlab中運行,各個M-book和M-book指令窗口共享一個“計算引擎”和同一個工作內存。工作內存中的變量是在M-book和Matlab運行之后產生的,當各個M-book交互運作的時候,不同的文件和窗口的變量是相互影響的,這樣就會使得輸出的計算結果和單獨運算輸出的結果不同,解決這個問題的辦法就是在每一組輸入細胞的前面加一項“clear”指令,這樣各個輸出細胞之間就不會相互影響了。

二、Evaluate(評估) Matlab notebook:

如需要對整個M-book文件整個一起運行,我們可以使用“notebook”---“Evaluate Matlab notebook”選項。這樣就是相當於從頭開始對整個M-book運行一遍,就是進行了一次刷新,把新的輸出細胞補充進來。對於大程序。這條指令少用。

三、Purge(凈化) Selected Output Cells:

利用這個選項可以刪除所有的輸出細胞;具體的操作是“加載項”---“notebook”---“Purge Selected Output Cells”。

四、Notebook Options:

1、對輸出數據的控制:數據格式(Numeric format)中的格式項控制12種輸出數據的表示方法:Short、Long、Short e、Long e、Short g、Long g、Short eng、Long eng、Hex、Bank、Plus、Rational;

2、對輸出數據間空行的控制:Loose和Compact選項是用來控制輸入細胞和輸出細胞之間的空隔。Loose為輸入細胞和輸出細胞之間加一個空行。同時注意輸入細胞群中的“format loose”和“format Compact”指令是用來控制輸出細胞與輸出細胞之間的空行。

3、對圖形的嵌入控制,剛打開的M-book文件中,“notebook options”中的“Embed figures in Matlab notebook”都是出於勾選狀態的。這樣輸出的圖像就可以嵌入到M-book中了,否則是無法顯示的。另外對於圖形的控制,我們可以通過其中的“Units、Width、Height”進行修改,當然在M-book中修改豈不是更方便。

注意:

1、正常情況下,圖形的背景顏色都是灰色加上白色,當出現時灰色加黑色的時候,我們有如下的解決辦法:

一是在options中勾選“Embed figures in Matlab notebook”;

二是在命令行輸入whiteg(‘while’);

三是在命令行輸入

close;

colordef white;

2、M-book文件中出錯,我們只知道出錯的原因,而不知道錯在哪里,而在.m文件中我們既可以知道出現的錯誤,又可以知道出現錯誤所在的位置,所以M-book也有不足之處;

3、wps打開后不能顯示,所以放棄用wps打開M-book吧!


Notebook的實例介紹:

1、隨機產生10^3個正態分布的數,並繪制成正態分布密度曲線圖。

提示:隨機數可以使用randn函數產生;hist繪制一組數的直方圖(默認情況下分成10個矩形,使用hist(變量,矩形個數即組數)修改參數可以實現改變矩形個數即組數)

結果:

for i=1:10^3

    a(i)=randn;

end

hist(a)

 

2、在M-book文件中有多個輸入細胞,分別為:

(1)球一元二次方程組的通解;

(2)求解4x^2+7x+3=0的根;

提示:在這里我們將第一個定義為自動初始化細胞;關閉M-book文件,再打開就會自動運行處第一個的結果;

結果:

y=solve('a*x^2+b*x+c')

y1=solve('4x^2+7x+3=0')

注意:在這里切忌加引號。在這里就算你已經開了Matlab,當新建立M-book的時候,它也自動會開啟一個新的Matlab作為其新的運行平台,關閉M-book,則Matlab關閉;所以在這里建議,進行Matlab演示的時候,首先不需要打開Matlab,建立的M-book文件就會自動打開作為其運行平台。

 

 

3、在M-book中有多個輸入細胞,分別為:

(1)求多項式4x^4-3x^3+x^2+7x+3=0的根;

(2)計算矩陣的秩;

(3)求解現行其次方程組的解;

提示:要求一次所有的輸入細胞全部運行,則需要定義“Evaluate Matlab notebook”;roots函數是對多項式函數求根,功能跟solve函數一樣;null(a,“r")函數是用來求解”a*x=0“的解空間,即求出解空間的一組基;”clear“當然不能夠少,他的目的是使第一個輸入細胞的變量不影響后面的輸入細胞;

結果:

clear;

a=[4,3,1,7,3];

y1=roots(a)

clear

a=[1:3;3:5;5:7]

y2=rank(a)

clear

a=[1:3;3:5;5:7]

y3=null(a,'r')


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM