這是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
沒有留言:
張貼留言