我在使用Jacket时遇到了这个问题。
我在gfor循环中使用编译函数(使用gcompile编译)。据我所知,这是支持的:http://wiki.accelereyes.com/wiki/index.php/GCOMPILE
但我观察到,虽然未编译的函数提供了正确的结果,但编译的函数为所有gfor迭代提供了相同的输出:
%================
% function[C] = test(A,B)
% C = A+B;
% end
%================
testing = gcompile('test.m');
A = gdouble(1:1:10);
B = gdouble(2:2:20);
C1 = gzeros(10,1);
C2 = gzeros(10,1);
gfor l=1:10
C1(l) = test(A(l),B(l));
C2(l) = testing(A(l),B(l));
gend
输出结果为:
C1 = [3,6,9,12,15,18,21,24,27,30] (正确的结果)
C2 = [3,3,3,3,3,3,3,3,3,3]
你可以验证/反驳我的结果吗? 我究竟做错了什么?
干杯, 安吉拉
答案 0 :(得分:0)
我能够通过在MATLAB上运行Jacket来重现这种行为。似乎gcompile不能正常运行GFOR,并且文档出错了。对不起。