我正在尝试将一些用 MATLAB 编写的代码移植到 C 中,这样我就可以编译该函数并更快地执行它(代码执行得非常频繁,它会带来显着的速度提升)。
所以基本上我的 MATLAB 代码所做的是它需要一个矩阵并将其转换为一个字符串,添加括号和逗号,所以我可以将它写入一个文本文件。这是一个关于向量 MyVec 如何工作的想法:
MyVec = rand(1,5);
NbVal = length(MyVec)
VarValueAsText = blanks(2 + NbVal*30 + (NbVal-1));
VarValueAsText([1 end]) = '[]';
VarValueAsText(1 + 31*(1:NbVal-1)) = ',';
for i = 1:NbVal
VarValueAsText(1+(i-1)*31+(1:30)) = sprintf('%30.15f', MyVec(i));
end
现在,我怎样才能在 C 中获得类似的结果?这似乎并不难,因为我可以提前计算我的字符串(char 数组)的大小,并且我知道我需要写入内存区域的每个元素的位置。该sprintf
函数也存在于 C 中。但是,我无法理解如何设置它,还因为我没有可以通过反复试验轻松学习的环境(每次尝试我都必须重新编译,这通常会导致分段错误和 MATLAB 崩溃...)。
我希望有人可以提供帮助,即使问题可能看起来微不足道,但我对 C 的经验很少,而且我无法找到合适的例子来开始......