我有一个函数,它接受 11 对输入参数(每对代表一种流程类型和一种输入商品)并根据所有这 22 个值计算结果。但是,我想让函数变得灵活,例如,如果我想使用 3 对输入参数而不是 11 个,它仍然会得出一个结果,同时忽略其他 8 对未使用的参数。你能告诉我最简单的方法吗?
我尝试过使用 varargin,但是当我传递少于 22 个值作为输入参数时,MATLAB 告诉我“(函数文件中的)(varargin)索引超过了 marix 维度。”
有没有办法传递“非活动”输入参数,以便 MATLAB 根本不对它们执行任何操作?
谢谢。
这是我在函数文件中的代码示例:
函数 [ Eprout,AnnEprout,Demand,AnnDemand,Status,AnnStatus ] = supdem(时间, 国家, 权重, supdataset, 输出, demdataset,... process1,process2,process3,process4,process5,process6,process7,process8,process9,进程10,进程11,... ipcom1,ipcom2,ipcom3,ipcom4,ipcom5,ipcom6,ipcom7,ipcom8,ipcom9,ipcom10,ipcom11)
Epout = (sum(sum(supdataset(time,country,process1,ipcom1,output)))+sum(sum(supdataset(time,country, process2,ipcom2,output)))+ ... sum(sum(supdataset(时间,国家,process3,ipcom3,输出)))+sum(sum(supdataset(时间,国家,process4,ipcom4,输出)))+ ... sum(sum(supdataset(时间,国家,process5,ipcom5,输出) )))+sum(sum(supdataset(时间,国家,process6,ipcom6,output)))+... sum(sum(supdataset(time,country,process7,ipcom7,output)))+sum(sum(supdataset (时间,国家, process8,ipcom8,output)))+ ... sum(sum(supdataset(time,country,process9,ipcom9,output)))+sum(sum(supdataset(time,country, process10,ipcom10,输出)))+... sum(sum(supdataset(时间,国家,process11,ipcom11,输出))))/1000;