顯示具有 How to 標籤的文章。 顯示所有文章
顯示具有 How to 標籤的文章。 顯示所有文章

9/27/2006

如何使用編輯器editor

Matlab編輯器(editor)功能在於產生可執行之M-檔案,該檔案之執行過程也可以利用這個編輯器偵錯。呼叫編輯器時只要在Matlab主程式之file下,選擇New-->M-file,或選open-->edit即可。其視窗外觀如下圖。

此編輯器之優點是它會自動產生行號,並且以不同顏色顯示關鍵字,最重要的功能是它有一邊執行一邊偵錯的功能。在執行過程中,只要在任何行號上設立中斷點,或將滑鼠指向行號之頭部按下,即會在該行頭部顯示紅點;或者,也可將滑鼠指向該行,然後按下中斷設定指令(具有紅點之圖示)。當程式執行時,碰到行頭之紅點位置,即會暫停。此時可以用滑鼠指向任何變數位置,即會顯示該變數之現值,以確定執行過程是否正確。若要取消中斷點,可按紅色打X的圖示解除;亦可直接在行頭上之紅點上重按一次解除之。

中斷點可以設置無數處。當程式執行到某一紅點,即會在該處出現綠色箭頭(如圖之第二個紅點)。此時亦可使用步進指令(位於紅X之右,具有曲形箭頭之圖示)偵錯,每按一次會執行一行,如此可以瞭解程式執行過程中之跳躍過程。另有一直線往下之箭頭圖示(曲形箭頭之右側),表示按時可以直接執行程式完畢或停在下一個紅色中斷點上。在任何中斷點處除使用滑鼠指向變數可以顯示該變數之對應值外,亦可在指令窗下,直接打入變數名稱,以顯示整個變數之內容,或更改某特定之變數值,以比較執行的結果。

同一個編輯窗中可以同時顯現許多M-檔案,各檔案的名稱均顯示在視窗之左下方,只要按下所需的檔案,即可觀察個別檔案之內容與進行情形。亦可一個檔案分別各有一個視窗,但必須自行設定。

新版的編輯器已加入M-Lint Code 的功能,可以分段執行檔案中之程式,亦可將執行與文字合併成為瀏覽窗下可以觀看的文件。此外,新版亦另外加上一項檢查報告的功能。可以檢查程式之執行效率,挑出那些指令所使用之CPU時間,以便程式設計師作有效率的設計。有關這一部份,有興趣的讀者可以參考線上輔助或其他書籍。



如何使用notebook指令?

notebook這個指令是matlab特有的指令,其功能係將執行matlab指令的功能直接合併置於微軟的文書軟體(Word)中。因此指令與執行結果可以整合於一報告之中,實際應用上有其方便性。

在初次執行此指令時,matlab會先在WORD設定一個notebook的巨集,並且在WORD之指令行上設有該項下拉式清單。其各項指令指下:


1. Define Input Cell
2. Define AutoInit Cell
3. Define Calc Zone
4. Undefine Cells
5. Purge Selected Output Cells
----------------------------
6. Group Cells
7. Ungroup Cells
8. Hide Cell Markers
9. Toggle Graph Output for Cell
----------------------------
10. Evaluate Cell
11. Evaluate M-book
12. Evaluate Loop
----------------------------
13. Bring MATLAB to Front
14. Notebook Options

在文書處理本身,其原先之功能均存在。只是文中屬於matlab之指令敘述,可以利用上述下拉式清單中之指令處理。其中第1項與第10項較為常用。通常是利用第1項指令定義文中之指令位置,然後用第10項加以執行,其所得之結果將出現在該指令之後。例如要計算十的三次方:

a=10^3

首先將要當為指令的部份全反白,然後要選第1項將其定義為matlab指令,其次再使用第10項加以執行,其結果如下:

a=10^3

a =
1000

另一種快速的方式是將指令部份反白後,按滑鼠右鍵,選第10項之evaluate cells指令即可得到相同的答案。此時這些屬於matlab之指令與結果均會用中括號括起,這部份在印出時並不顯示。屬於指令部份用綠色,屬於結果部份用藍色。

第2項指令之功能與第一項相同,只是第2項執行後,每一次將此一文件開啟時,其指令均會自動計算一次,利用第1項計算的則維持原樣。所以每次內文開啟時會改變的數值,例如日期date指令在文件開啟時,會自動更新。

若有許多指令合併使用,則可使用第6項的群組指令,這有點像寫一個小程式一樣。例如:

t=0:pi/100:2*pi;
y=cos(t);
plot(t,y)




結果連圖都會畫在word上。實際上這個群組令只要將要執行的指令全部反白後,使用第一項指今令也可以執行。其餘相關功能請打如下指令進行參考:

>>doc notebook





9/21/2006

如何在部落格中顯示圖片

如何在部落格中顯示圖片?

部落格中之圖片可利用img之指令顯示。其格式如下:

<img src="http://tw.yimg.com/i/tw/blog//nophoto_135x135.gif" width="100" height="100"/>
在src=""之內面為該圖存放之位址。 此位址存在雅虎網站上,是一張笑臉圖:



圖之大小可利用height與width兩參數指定。同樣,你也可以使用超連結的方式將其指向該圖之位址:

<a href="http://tw.yimg.com/i/tw/blog//nophoto_135x135.gif">請按此看笑臉<\a>
鉗入上段文字,張貼後即可得到下面之指令:

請按此看笑臉

何處可放置圖片?

圖片可以存在任何網站上,諸如貼圖的相簿是。這些可存圖之網站如下,請各位同學參考:

http://www.blogger.com
http://www.flickr.com
http://www.buzznet.com
http://tw.blog.yahoo.com


這些網站都可以免費存放,只要進入該網站登入帳號。 任何網路上之照片均可用滑鼠直指該圖,然後按右鍵,令其顯示該圖片之網址。此照片網址即可取出依上面所述之方式利用。

如何將程式張貼到本部落格?

雖然程式可以如文字那樣進行張貼,但由於張貼之文章是以html之格式存檔,有些碼會與html固有之< >碼相衝,有時會產生不可預測之結果。因為< >之間係用來下指令用。例如前述之<img .../>是。所以在程式中,有關大於、小於等符號都應該避免使用,其替換的方式是:

<用"&lt;"取代;
>用"&gt;"取代;
&用"&amp;"取代;
¦用"¦"取代(注意上項之分號也包括在內)

除此而外,為維持程式本身之格式,諸如內縮之結構,可以在程式之前後分別使用preformated的指令,即 <pre >...</pre>,例如:

<pre >


function [C]=draw_number2(no_of_draw)
% draw ball numbers within ndraw times
% Using switch case
C=zeros(1,5);
n=1;
while n<=no_of_draw
ball=fix(rand*10);
switch ball
case {0,1}
C(1)=C(1)+1;
case {2,3}
C(2)=C(2)+1;
case {4,5}
C(3)=C(3)+1;
case {6,7}
C(4)=C(4)+1;
otherwise
C(5)=C(5)+1;
end
n=n+1;
end
</pre>

工作區(WORKSPACE)

工作區是MATLAB用來儲存執行過程中所產生之變數,其中常見之項目包括變數名稱、數值、型態、大小等。有時也可以增加其他特性如最大值及最小值等。在指令行中,亦可利用who或whos來得到相同的效果。

>> who

Your variables are:
A C M R S c

>> whos

Name Size Bytes Class
A 4x4 128 double array
C 1x3 186 cell array
M 1x1 8 double array
R 1x1 8 double array
S 1x3 24 double array
c 1x16 128 double array

Grand total is 43 elements using 482 bytes









這些資料正如前面之介紹,可以使用save指令儲存起來,以便下次再用。下次要用時則可使用load指令將其取回。這些變數同時儲存時可以設定名稱,副檔名為.mat,其預設值為matlab.mat。

這些變數如果是執行指令窗內指令的結果,通常置於基層(base),若有呼叫其他函數時,該函數內之變數屬於自己的工作區,此時有別於基層參數。故在工作區窗之上有一欄稱為stack則在專指這一項功能,到實際偵錯時較為有用。

與陣列編輯窗一樣,在工作區內之變數仍然可以使用圖示,以圖表示其變化趨勢。這是matlab功能較強的地方,不必利用指令即可進行連結變數資料而繪圖。所以只要在工作區內,將所需繪圖之變數名稱反白,即可選擇繪圖之模式進行繪圖。

陣列編輯器(Array Editor)

矩陣編輯器是為編輯陣列變數之工具。其型式有如試算表,只是它僅能修改及顯示,沒有計算的功能。原則上每一個參數均可使用一個在編輯器中開一個視窗檔案,所以可以同時開數個各別參數之內容視窗。由於Matlab之變數均以矩陣之型式顯現,故即使僅有一個元素(即為常數),亦可採用矩陣表示。其編輯視窗之外觀如下:

要開啟陣列編輯器,可以選開啟,然後選變數即可。若變數不存在,則會自動製造一個unnamed的參數名稱,其內容為空白,其名稱可以事後加以修改。若已有變數存在,則可在工作空間中,針對該變數以滑鼠按兩下,開啟屬於該變數內容之視窗。

由指令窗中亦可直接下指令,產生該視窗:

>>openvar('M')

屬於M參數之值即可顯示在編輯視窗上。

理論上這個視窗可以處理Matlab所有之變數型態,包括陣列、矩陣資料及結構性資料。後者將在後面陳述。

由於大型矩陣不容易由指令窗輸入,故採用陣列編輯器更為方便。這個陣列編輯器可與速算表之資料相通,故只要將速算表中之資料拷貝,即可複製於編輯器中之某一變數內。原則上,陣列之輸入以行向為主,要增加一行,只要將其中一元素之位置增加即可,如此即可增加另一行。其餘未有資料之空間則以零取代。

比較重要的功能是在處理變數之過程中,可以使用此編輯器就特定變數繪圖。先將待繪的資料範圍選定,然後選擇繪圖型式,即可得到其對應之圖表。有些參數程式會使用預設值,可以不經額外指令參數繪製所需之圖表。雖然如此,繪出圖表之對應指令則可立即顯現在指令窗中,可供參考,也可以利用歷史窗將該指令群拷貝,使其圖表能重新再現。

輸入之資料亦可使用字串,但必須使用單括號" ' "括起來,以便能與一般數值資料區別。

滑鼠在資料間移動,可以使用下列熱鍵(hot key)控制:
  1. enter 確立輸入正確資料
  2. tab 向左移動
  3. shift+enter shift+tab 向與enter或 tab相反的方向移動
  4. page Up/Down 向上或向下移動可見的列
  5. Home 移至第一行
  6. Ctrl+Home 移至第一行第一列
  7. Shift+Home選至第一行
  8. End 在目前列中移至最後一行
  9. f2 位移至元素之末端,編輯目前之元素