我试图弄清楚arrayfire库的使用,并且按照下面的小代码段编写了一个2D图
af::info();
af::Window myWindow(800, 800, "2D Plot example: ArrayFire");
myWindow.grid(3, 1);
std::vector <double> xyz = { -1, -1, -1, -1, 0, 0, -1, -2, -2, -2, -1, -1, 1, 3, 4, 5, 4, 2, -1, -2 };
array A = seq(0, 19);
af_print(A);
array B(xyz.size(), xyz.data());
af_print(B);
myWindow(0, 0).plot(A, B);
myWindow.show();
但是我在运行时遇到类型不匹配的输入错误。
> ArrayFire Exception (Input types are not the same:205): In function
> af_err __cdecl plotWrapper(void *const ,void *const ,void *const
> ,const af_cell *const ,fg_plot_type,fg_marker_type) In file
> src\api\c\plot.cpp:268 Type mismatch inputs 0# af::allocHost<short>
> in afopencl 1# af::allocHost<short> in afopencl 2#
> af::allocHost<short> in afopencl 3# af_is_real in af 4# af_is_real
> in af 5# main at C:\Users\rad\source\repos\ArrayFire\plot2d.cpp:44
> 6# invoke_main at
> d:\agent\_work\5\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79
> 7# __scrt_common_main_seh at
> d:\agent\_work\5\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
> 8# __scrt_common_main at
> d:\agent\_work\5\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331
> 9# mainCRTStartup at
> d:\agent\_work\5\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17
> 10# BaseThreadInitThunk in KERNEL32 11# RtlUserThreadStart in ntdll
>
> In function void __cdecl af::Window::plot(const class af::array
> &,const class af::array &,cons
有人可以帮我还是指导我正确的教程。我从这里http://arrayfire.org/docs/examples.htm关注arrayfire示例。
预先感谢您的帮助。
最佳答案
有几件事可以改进。
请仔细阅读graphics tutorial,然后再跟随plot2之类的示例,介绍如何编写多 View 渲染程序。
由于您正在探索arrayfire,因此建议您先执行tutorials,然后再进行code-using-arrayfire或将现有代码移植到arrayfire。