1

我在使用 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]

你能验证/反驳我的结果吗?我究竟做错了什么?

干杯,安吉拉

4

1 回答 1

0

我能够通过在 MATLAB 上运行 Jacket 来重现这种行为。gcompile 似乎无法正常工作在 GFOR 上,并且文档有误。对于那个很抱歉。

于 2013-02-26T21:15:25.300 回答