错误:arrayFun调用不支持创建函数句柄。

1次观看(过去30天)
我正在尝试使用GPU工具进行ODE计算,以模拟一个这样做的项目。我试着用同样的方法运行一个简单的程序。我的代码分为三个部分
〇我的主要功能
tspan = gpuArray([0,20]);
日元= gpuArray (2);
纠正= arrayfun(@wrap,tspan,y1);
[t,y] = gather(修正后);
一个调用ode45-的封装函数
函数[t,y] = wrap(tspan,y0)
[t、y] =数值(@vbp1 tspan, y0);
结束
vbp1
函数Dydt = vbp1(t,ya)
Dydt = [ya(2);(1-ya(1) ^ 2) *丫(2)丫(1)];
结束
这就是我得到的错误
使用main出错(第4行)
不支持创建函数句柄。
要了解更多信息,请参阅提示。
在'wrap'中出现错误(第2行)
有人知道为什么会抛出这个错误吗?我对MATLAB很陌生,所以如果这些错误是基本的,请原谅我。

答案(1)

沃尔特·罗伯森
沃尔特·罗伯森 2022年10月19日
你面临的挑战不止一个。
更有限制的是ode45和类似的函数不支持gpu。
[//www.ru-cchi.com/help/matlab/referencelist.html?type=function&capability=gpuarrays >
这并不是您收到错误的原因,但它告诉您另一个问题此时不值得解决。
1评论
Sohan
Sohan 2022年10月21日
非常感谢您的回复!我希望模仿这个项目
它似乎已经在GPU上实现了ode45计算。如果我能再麻烦你一点,告诉我为什么这个项目会成功,而不是我已经实施了什么。

登录评论。

世界杯预选赛小组名单社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!世界杯预选赛小组名单

开始狩猎!

Baidu
map