Re: [問題] function問題!已回收
function 可以把他當成副程式
也就是主程式中可以獨立切割出來運算的部分
通常能夠使主要程式更精簡
也能夠使需要相同運算的程式 不必再主程式中一再重複出現
舉例:
把下面的程式存成aa.m
function [X Y]=aa(a,b,c,n)
X=2*a+b;
Y=c*randn(1,n)+X;
然後在command window
或是主程式中 我們就能直接使用aa這個函數來運算(必須存在相同資料夾 或指定路徑)
例如在command window輸入下面程式
[K G]=aa(2,3,4,5)
運算後 得到K=2*2+3 Y=4*randn(1,5)+K
也就是說
function [X Y]= aa(a,b,c,n)
^^^^^ ﹋﹋﹋﹋﹋﹋這是函數名稱+應該給的輸入參數
這是此函數的輸出
※ 引述《afa0525 (阿發)》之銘言:
: 這是我的初始設定.m檔案內容 檔名initial.m
: clear;
: clc;
: rand('seed',25);
: loop=40;
: popsize=20;
: Bit=30;
: Pm=0.03;
: Pc=0.3;
: Pm_elit=0.2;
這邊並沒有使用new這個函數
你這邊可以加一行
pop=new(loop,popsize,Bit,Pm,Pc,Pm_elit)
然後執行看看
: 另外一個檔案 一開始內容 檔名new.m
: function[pop]=new(loop,popsize,Bit,Pm,Pc,Pm_elit)
你設定的函數輸入項非常多 但實際運算時卻只用到popsize跟Bit 其他輸入變成多餘的
: pop=round(rand(popsize,Bit))
: 我想做一下測試!! 但不知道 為什麼不能動 悶
因為你直接run new.m這個檔 這樣是不對的
new是你編寫的function 是要拿去主程式中使用的
: 前幾天有上來問function的問題 也有去看投影片
: 但還是不太會用 !! 可以請問 這個要如何改它才會動作 ?? 謝謝
: 錯誤??? Input argument 'popsize' is undefined.
你必須先理解寫function的目的
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 134.208.0.181
推
05/15 00:04, , 1F
05/15 00:04, 1F
→
05/15 00:04, , 2F
05/15 00:04, 2F
※ 編輯: juzn 來自: 134.208.0.181 (05/15 00:07)
→
05/15 00:07, , 3F
05/15 00:07, 3F
討論串 (同標題文章)