Matlab文件交换有一个非常有用的混合C函数:sharedmatrix.m:
https://www.mathworks.com/matlabcentral/fileexchange/28572-sharedmatrix
但不幸的是,它在R2014之后的版本上崩溃。
这段代码对我的项目很重要,它需要R2018a中的一些特性。如何修改这段代码以与R2018a一起运行?
最佳答案
该文件依赖于未记录的功能。由于在R2018a中,MATLAB的内部发生了显著的变化,人们在编写这种类型的函数时使用的大多数未记录的知识不再正确。这就是这个函数崩溃的原因。
社区还没有赶上这些最近的变化,而且很可能永远不会赶上。所以我怀疑这个功能永远不会在R2018a或更新版本上工作。
另一方面,不再需要这种类型的无文档功能,因为新的、有文档的功能提供了大多数以前仅使用无文档功能才可能实现的功能。
有关文件交换提交中的一条评论建议您改用memmapfile
:
首先将大块数据保存到文件中,然后进行内存映射:
m = memmapfile(data_file_name,'Format','single','Writable',true);
然后可以从parfor内部调用此内存映射文件,如下所示:
parfor i = 1:N
mm{i} = memmapfile(tl_data_name,'Format','single','Writable',true);
result(i) = someFunction(mm{i})
end
-约翰达普,2017年6月14日
(我没有亲自测试过。)
关于c - 如何修改以下代码以在Matlab r2018a上运行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50981682/