2011-05-16 53 views
-2

我試圖設計一個存儲系統,其中多餘的能量進入它。系統有一個最大存儲大小的上限。我正在努力研究如何在matlab中對其進行編碼。計數器/存儲收集器+ Matlab

目前即時通訊使用類似於此

max_storage = no_tanks*tank_size 

if cumsum(excess) > 0 
    storage = cumsum(excess) 
elseif cumsum(excess) < 0 

後,我很困惑如何繼續編寫代碼的功能。任何幫助將不勝感激

+1

爲了解決這個問題而不需要介意閱讀,您需要更具體地瞭解您想要的內容,並且最好包含一個* reproducible *示例。 – 2011-05-16 10:47:15

+0

迄今爲止我看到的一個紅旗:你對變量'excess'使用[CUMSUM](http://www.mathworks.com/help/techdoc/ref/cumsum.html),這向我暗示「過剩'是一個向量,這意味着CUMSUM的輸出也是一個向量,這意味着if語句中的'cumsum(excess)> 0'也是一個向量。在[if語句](http://www.mathworks.com/help/techdoc/ref/if.html)中使用矢量時應特別注意矢量處理。 – gnovice 2011-05-16 14:07:50

回答

0

嘗試思維閱讀,同時等待更新的問題。

將存儲大小限制爲max_storage,你需要有一個像

storage = calc_storage(excess);  % or whatever 
storage = min(storage, max_storage); 

一些代碼,不要忘了與;完成你的陳述,如果你需要使用cumsum(excess),很多時候也比較好將它分配給一個變量而不是一遍又一遍地計算它。