2012年4月13日 星期五

Matlab function

http://163.13.134.134/MATLAB/

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)



----------------------------------------

沒有留言:

張貼留言