我正在尝试将一些代码从Matlab转换为ILNumerics,一切正常,直到我需要折叠数组。像这样:
MatLab的原始版本:
d1 = data(1:2:end,:); % test code.
d2 = data(end:-2:2,:); % test code.
data = [ data(1:2:end,:); data(end:-2:2,:) ]; % original code.
dct = weight .* fft(data);
ILNumerics转换版本:
ILArray<double> d1 = data[r(0, 2, end), full];
ILArray<double> d2 = data[r(end, -2, 1), full];
data = data[r(0, 2, end), full].Concat(data[r(end, -2, 1), full], 0);
ILArray<complex> dct = weights * fft(data);
数据是&lt; 16384x1 double&gt;并且d1和d2是&lt; 8192x1 double&gt;两个版本之间的大小匹配。但是当我检查d1和d2的max()值时,与IL的版本相比,它们并不相同。我从fft(数据)获得的值也不匹配。
我的ILNumerics索引偏移量是错误还是别的?
答案 0 :(得分:1)
发现我的错误,这是代码中较早的错误。 @haymonkutschbach建议使用ILMatFile
的想法帮助我追踪它。见上面的评论。
编辑:我使用的测试是dif = data[abs(data - dataFromMatlab) > 0.000000000000001 ]