11 組の入力引数 (プロセスのタイプと入力商品を表す各ペア) を取り、それらの 22 個の値すべてに基づいて結果を計算する関数があります。ただし、関数を柔軟にして、たとえば、11 ではなく 3 ペアの入力引数を使用したい場合でも結果が得られ、その間、未使用の残りの 8 ペアの引数は無視されるようにしたいと考えています。一番簡単な方法を教えてください。
varargin を使用してみましたが、入力引数として 22 未満の値を渡すと、MATLAB は「(関数ファイル内の) インデックス (varargin) が marix の次元を超えている」と通知します。
MATLAB が単純に操作を実行しないように、「非アクティブ」な入力引数を渡す方法はありますか?
ありがとう。
関数ファイル内のコードのサンプルを次に示します。
関数 [ Eprout,AnnEprout,Demand,AnnDemand,Status,AnnStatus ] = supdem(time, country, weights,supdataset,output, demdataset,... process1,process2,process3,process4,process5,process6,process7,process8,process9, process10,process11,... ipcom1,ipcom2,ipcom3,ipcom4,ipcom5,ipcom6,ipcom7,ipcom8,ipcom9,ipcom10,ipcom11)
Eprout = (sum(sum(supdataset(time,country,process1,ipcom1,output)))+sum(sum(supdataset(time,country, process2,ipcom2,output)))+ ... sum(sum(supdataset( time,country,process3,ipcom3,output)))+sum(sum(supdataset(time,country, process4,ipcom4,output)))+ ... sum(sum(supdataset(time,country,process5,ipcom5,output) )))+sum(sum(supdataset(time,country, process6,ipcom6,output)))+... sum(sum(supdataset(time,country,process7,ipcom7,output)))+sum(sum(supdataset) (time,country, process8,ipcom8,output)))+ ... sum(sum(supdataset(time,country,process9,ipcom9,output)))+sum(sum(supdataset(time,country, process10,ipcom10, output)))+... sum(sum(supdataset(time,country,process11,ipcom11,出力))))/1000;