Matlab的cellfun不按特定顺序执行函数func调用吗?

时间:2015-12-26 20:18:26

标签: matlab

Matlab' s documentation说:

[A1,...,Am] = cellfun(func,C1,...,Cn) 
  

输出数组A1,...,Am,其中m是函数func的输出数,包含函数调用的组合输出。第i次迭代对应于语法[A1(i),...,Am(i)] = func(C1{i},...,Cn{i})。 cellfun函数不会按特定顺序执行函数func的调用。

如果单元格数组中单元格的顺序实际上有意义,那么这不是问题吗?

1 个答案:

答案 0 :(得分:4)

订单在A1(i) = func(C1{i})中得到尊重。但是,该调用和赋值的相对顺序不一定是顺序的。也就是说,Matlab可以做到

A1(3) = func(C1{3});
A1(5) = func(C1{5});
A1(1) = func(C1{1});
% and so on until all indices in 1:length(C1) are covered

文档只是告诉您不要假设/依赖以线性顺​​序发生的调用,例如:调用I / O例程,引用全局/持久变量和其他此类设备。