楔子
本指南试图帮助用户写出在转C过程中尽量少报错的Matlab m文件,其中更多是一些编程范式上的问题,在此记录下来,帮助后人写出无缝转C的代码。
Author: Y. F. Zhang
Time: 2022.4.16
注意点
使用变量前声明变量
这一点在matlab中时可以容忍的,但对于一般编程语言是无法容忍的。使用一个变量前请预分配变量内存(注意预分配内存不是简单前面给个 =0
就可以了,得是相应维度的预分配):
tmp = zeros(6, 6); % 预分配内存
for i = 1 : 6
tmp(:, i) = ones(6, 1);
end
m文件中内联嵌套scripts
不要这么干不要这么干不要这么干… 目前转c是不支持内联嵌套scripts的:
% main.m
a = 2;
b = zeros(3, 3);
init_para; % init_para.m 为scripts
% others
% others...
有多种方案解决,例如:
- 将
init_para
代码内联进来(也就是直接复制过来); - 将
init_para
写成无参函数调用