在调用用户定义的函数传送的数据(data transferred in calling a user

2019-10-18 06:00发布

我需要分析一大来源code.Code包含几个函数调用。 取决于函数调用的计算和通信,我需要找出最佳的配置方案的源代码的整体执行。

据我,

在调用一个函数(如果是不同的机器,服务器等上)=输入数据大小+输出数据大小传送的数据

用于获取输入数据的大小和输出数据的大小,我想应该重写所有功能,以具有可变数目的输入和变量输出。

[varargout] samplefunction(varargin) {

FOR i=0:nargin
 inputdata=inputdata+sizeof(varargin(i));



% Do stuff here


}

是不是有办法直接在Matlab计算单元阵列(varargin / varargout)的大小?

或者,如果ü可以建议另一种方法来衡量函数调用之间传送的数据?

Answer 1:

要在通话cellfun()用字符串输入会非常快:

sizes = [cellfun('size',varargin,1); cellfun('size',varargin,2)];

要么

lenghts = cellfun('length',varargin);

要么

numels  = cellfun('prodofsize',varargin);


文章来源: data transferred in calling a user defined function