我正在尝试在Matlab中进行简单的速度测试。我希望它从1到20为每个a因子3 ^ a-2。可能我在这里选择的数字太少看不出任何显着差异,但我仍然被卡住了。
我试着写
n = [1:20]
m = 3.^n-1
arrayfun(factor,m)
这会产生“输入参数不足”的错误。我虽然有道理,但显然不是。在查看了arrayfun和手册的一些示例后,我也尝试了
arrayfun(@(m)factor(m), m)
arrayfun(@(m), factor(m), m)
arrayfun(@factor, m)
但没有效果。这样做的正确方法是什么?而且,如果我进行这种速度测试,结果是否会被缓存,所以如果我再次进行测试,我将不得不使用不同的数字?
答案 0 :(得分:1)
使用此:
l=arrayfun(@factor,m, 'UniformOutput', false);
访问使用:
l{1}
,l{2}
...等