MATLAB:cellfun和两个变量函数

时间:2017-10-28 08:44:58

标签: matlab vectorization cell-array

temptemp是1×44个单元格:每个单元格是1 X 3130数组的双倍。

tempwmul是1×44个细胞:每个细胞是1×1训练过的网络。

我想用相对数组double模拟每个网络:

for ilog=1:44

tempoutemp{ilog} = sim(tempwmul{ilog},temptemp{ilog}); 

end

在使用cellfun的矢量化模式中:

tempoutemp=cellfun(@sim,tempwmul,temptemp,'UniformOutput', false);

代码不会返回错误,但在矢量化模式下,它始终使用第一个网络 对于所有数组数据和结果明显不同......有些帮助吗?

1 个答案:

答案 0 :(得分:0)

正如Sardar Usama所说:据我所知,cellfun不是矢量化模式。

无论如何,如果你真的想要使用功能风格(出于风格的原因,而不是性能),我想你可以做到:

tempoutemp = arrayfun (@(idx) sim(tempwmul{idx}, temptemp{idx}), 1 : length(temptemp), 'Uni', 0);