我有一个要转换为C ++的Matlab脚本,因为它非常慢。我是C ++新手,开始尝试使用codegen
,但是它不起作用(我收到消息???该文本包含非空的顶级表达式。它似乎是一个脚本。)
您对如何开始转换代码有任何建议吗?另外,执行fitsread
的最佳C ++函数是什么?
这是我的代码:
clear;
number_projections = 10;
imgs_per_proj = 2000; % Number of images per projection
% Lets load the reference images relative to the various wavelengths
R1 = zeros(imgs_per_proj, 512, 512);
R2 = zeros(imgs_per_proj, 512, 512);
l = 0;
for k = 1:imgs_per_proj
s = sprintf('Ref/R1_000_%05i.fits',k-1);
t = sprintf('Ref/R2_000_%05i.fits',k-1);
l = l + 1;
R1(l,:,:) = fitsread(s);
R2(l,:,:) = fitsread(t);
end
最佳答案
codegen
要求您尝试转换的MATLAB代码位于函数中,并且似乎您试图转换脚本
但是,即使您这样做,在fitsread
中似乎也不支持codegen
。以下是受支持的功能列表:
http://www.mathworks.com/help/simulink/ug/functions-supported-for-code-generation--alphabetical-list.html
C ++中没有“内置”函数可以替换fitsread
-为此,您需要一个库。有一个名为CCFits
的C ++ FITS库,您可以在这里找到:http://heasarc.gsfc.nasa.gov/fitsio/CCfits/
他们应该有您可以遵循的教程。