2015-02-17 38 views
0

我有一個問題,提取各種功能的輸出和定義他們,因爲他們是計算。我想有一個主文檔執行的任務,如:Matlab函數 - 如何將矢量輸出捕捉到單個變量中?

fcost(變量)

- >矢量輸出 F =矢量輸出。

確切的代碼如下:

function fcost(hours,heatcost,slack1,slack2,realdata) 


ncalc = 4 * hours; 

P = zeros(ncalc*3*4,1); 

if realdata == 2; 

    SIN = sin((1:ncalc*4)/8)*0.5+0.7 

    P(1:3:end) = SIN(1:ncalc*4); 
    P(2:3:end) = slack1; 
    P(3:3:end) = slack2; 

else 

    P(1:3:end) = heatcost; 
    P(2:3:end) = slack1; 
    P(3:3:end) = slack2; 

end 
P 
format short 
end 

的問題是,該功能只吐出載體 - 和犯規定義爲任何主文件到投入使用。

在此先感謝!

回答

1

僅編寫代碼顯示該向量並且不返回它。這由你的代碼的函數頭是明顯的:

function fcost(hours,heatcost,slack1,slack2,realdata) 

聲明一個函數fcost各種參數,但是它沒有回報什麼。如果你想打電話fcost後返回P,你需要修改你的函數頭:

function P = fcost(hours,heatcost,slack1,slack2,realdata) 

現在這個功能保存到一個名爲fcost.m文件,然後當它的時候使用它,這樣做:

P = fcost(hours, heatcost, slack1, slack2, realdata); 

fcost的輸出將被存儲在P中。因爲您現在正在返回P,所以您可能希望刪除代碼的最後兩條冗長的語句。具體來說,刪除這兩行:

P 
format short 
+0

謝謝你的解釋!我一直在四處尋找這樣的崩潰,並確定他們在那裏,但還沒有釘上一個。 – 2015-02-18 07:42:47

+0

@RasmusElbaek - 沒問題:)如果我有幫助,你不再需要幫助,考慮接受我的答案。點擊我帖子頂部的複選標記圖標,在向上和向下投票箭頭的左下方。祝你好運! – rayryeng 2015-02-18 08:28:51