1...........................
function [mean,stdev] = stat(x)
%STAT Interesting statistics.
n = length(x);
mean = sum(x) / n;
stdev = sqrt(sum((x - mean).^2)/n);
2..........................
function [mean,stdev] = stat(x)
%STAT Interesting statistics.
n = length(x);
mean = avg(x,n);
stdev = sqrt(sum((x-avg(x,n)).^2)/n);
%-------------------------
function mean = avg(x,n)
%AVG subfunction
mean = sum(x)/n;
Matlab function的奧義, 透過 stat(x) function
偷渡了 兩個function mean,stdev 值
同時 在stat()底下又實做了兩個function
裡面順便又藏了function的實做,Function又有subfunction
還在想,要怎麼呼叫 Function.m 底下的 其他寫在同一檔案裡的SubFunction
看來Matlab是沒有Function.Subfunction 這種寫法
不過也簡單俐落,直譯程式的優點
所以要是想要取得mean Fucntion的話
別無他法,只能透過主function 去偷渡你要得Function值出來或是做你要得Function
這種方式管理區域變數全域變數乾淨俐落
function a()
aa=1
function b
bb=2
function c
cc=3
---------
輸出 aa=1
bb cc 消失的無影無蹤
至於
function [mean,stdev] = stat(x)
在 function[] 裡面放 mean,stdev 這兩個值˙還真是有深奧的意含
不能單單只在腳本上使用stat(x)
而是要 [mean,stdev] = stat(x)
才能把mean,stdev=兩個變數帶出來
不能單[mean] 或是 [stdev]
----------------------------
function b=a(x)
a(x)=x+1
---------------------------
這種寫法,還真是表現了matlab 好玩的地方 . . .
a(10)
a = 0 0 0 0 0 0 0 0 0 11
---------------------------------------------------------
function [b,c]=a(x)
a(x)=x+1
b=a(x)
c=b+x
>> a(10)
ans = 11
[b,c]=a(x)
a = 0 0 0 0 0 0 0 0 0 11
b = 11
c = 21
ans = 11
切記!! 放進欄位 取出欄位!!! 要對應 程式不會自動判讀 字串
只認得 欄位順序
function [OO,XX]=a(x)
>> [OO,XX]=a(x)
----------------------------------------
沒有留言:
張貼留言