2015年1月24日 星期六

[ 學習 ] Matlab(advanced) 計中 note PART1

這是2015.1.22去學校計中上matlab課程的筆記(算是稍微進階的課程),是配合講師pdf檔的筆記,因為不知道有沒有版權問題(?) 有需要的人在跟我說吧~


SECTION1: Writing Functions
<p8>
function的workspace平常看不到,要進debug mode才看的到

<p9>
.mex: c->matlab
.mdl:simulink
.p:加密檔, 使用方式:pcode FunctionName

<p10>
setpath:指定特定搜尋的資料夾(小抽屜)
[頁籤:HOME >> set path]
搜尋順位:由下往下搜,後設定的先被搜到

*"clear":清空workspace
--------------------------------------------------
SECTION2: Structuring Code
<p13>
打開呼叫function內容:反白,按右鍵open"FunctionName".

<p15>
private folder(專案專用):在專案資料夾內,新增一個名為"private"的資料夾(不能改其他名稱),裡面的程式將被保護(僅有上一層的程式能呼叫)

<p16>
Subfunctions:
(1)將多個subfunctions合為一個.m file
(2)以'function'(不認'end',有沒有寫沒差)來隔開各個subfunctions
(3)只有第一個fuction可以被呼叫(整個function也以第一隻命名; 第一個再呼叫其他的functions)

<p18>
Nested Functions:跟Subfunction類似,也是一個.m file裡面包多個functions,但是以巢狀包覆
*'end'就一定要寫
(1)可以被直屬上層呼叫 (爸爸叫你做事,你不能不做!XD)
(2)平輩(且同父母),才可呼叫 (要幫親兄弟;不用幫表兄弟XD)
(3)任何晚輩呼叫,都可以被執行 (爺爺是大家長,整個家族有難都要幫XD)

<p21>
亂數產生-
rand:機率為平均
randn:依照常態分布

<p22>
Function Handles:具有function功能的變數(雙重國籍)

//***********************************//
*workspace icon:
-numerical:田字型
-logical:框框中打勾
-character:框框ABC
-function handle:框框裡一個盒子
//***********************************//

*"S=1:2:11" :S為1~11,間隔為2的陣列(1 3 5 7 9 11)

*bsxfun:ML內建function handle的
 ex.
 A = [1 2;3 4]
 B = [5 6]
 bsxfun(@plus,A,B)

 => ans = [6 8;8 10] ...(只要一個維度相同即可相加)

<p24>
*disp([...]):show字串(字元),display  [num2str:num->str]
*...(enter):太長要寫到下一行的話

//***********************************//
#myFunction.m:
>> MF=myFunction(8)
7 times 8 is 56

MF = 

    @mySubFunction

>> MF(9,8)

ans =

    72
//***********************************//

<p25>
Anonymous Functions:像Function Handles也是變數
但是差別在:
-Function Handles的function已存在,用它產生一個變數
-Anonymous Functions的function原本不存在,直接在產生變數時,產生function(用於非常簡易的程式碼)
#ex.AAA.m

<p26>
整個nested是共用同一個workspace

沒有留言:

張貼留言