我在使用 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]
你能验证/反驳我的结果吗?我究竟做错了什么?
干杯,安吉拉