2013-02-26 1 views
1

Я наткнулся на эту проблему во время работы с курткой.Поддержка GCOMPILE для GFOR?

Я использую скомпилированную функцию (скомпилированную с gcompile) внутри цикла gfor. Это должно быть поддержано, насколько я знаю: 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 

выход:

С1 = [3,6,9,12,15,18,21,24,27,30] (правильный результат)

С2 = [3,3,3, 3,3,3,3,3,3,3]

Можете ли вы подтвердить/опровергнуть мои результаты? Что я делаю неправильно?

Cheers, Angela

+0

Человек, который может ответить, что больше, чем кто-либо из нас, является @Pavan ... Я уверен, что он скоро доберется до этого ... – bla

ответ

0

Я был в состоянии воспроизвести такое поведение, запустив Жакет на MATLAB. Похоже, что gcompile не работает над GFOR, как следует, а документация была ошибочной. Извини за это.

+0

Это должен был быть комментарий. –

+0

Планируете ли вы это исправить или знаете, сможет ли Matlab предоставить такую ​​комбинацию GCOMPILE/GFOR, как только они ее выпустят? – Angela

+0

В настоящее время мы не можем вносить изменения в исходный код Jacket. Однако есть много способов добиться того, что вы делаете - GCOMPILE не обязательно является лучшим или единственным решением. Фактически, у GCOMPILE есть много ограничений, которые, я уверен, вы знаете о: http://wiki.accelereyes.com/wiki/index.php/GCOMPILE – Vish

 Смежные вопросы

  • Нет связанных вопросов^_^