2015-11-24 86 views
1

我不能完全弄清楚如何初始化101 x 101 f32數組,例如sin((xindex-50)*(xindex-50)+ (yindex-50 * yindex-50))。初始化二維數組作爲其索引的函數

我能做

array x(seq(-50,50), 101); // get one of the indices 
array pic(101, 101);   // result 

但在這裏我停止,因爲我看不到怎麼辦指數的積。

pic(seq(-50,50), seq(-50,50)) = .... // what do I put on the RHS that will work? 

我敢肯定,當我明天醒來時,這一切都會很明顯,但現在我不太明白。 (在Halide很容易...)

+0

嗯,大腦告訴我在醒來時使用gfor。在我跑了一些差事後,我會閱讀關於該文件的文檔,看看是否有效。有可能沒有辦法在數組「符號」中表示上述內容,即在RHS上使用數組函數和類成員。 –

回答

1

上述問題可以通過使用iota()來解決。例如,對於50 x 50陣列,

array rows = iota(dim4(50), dim4(1, 50)); // y values 
array cols = iota(dim4(1,50), dim4(50)); // x values 
array pic = sin (rows*rows + cols*cols); // function of x and y per element