在 MATLAB Coder 中自动定义输入类型
由于 C 和 C++ 中的变量采用静态定型,因此当您生成代码时,代码生成器必须确定您的 MATLAB® 文件中所有变量的类型。您必须为入口函数的所有输入指定类、大小和其他属性。要在 MATLAB Coder™ 中指定输入类型,您可以:
通过测试脚本或在命令行中调用入口函数,指示 App 自动确定输入类型。
直接指定属性。
在本教程的此步骤中,您将通过测试脚本调用入口函数,指示 App 自动确定输入类型。
要设置工程文件并将入口函数添加到工程中,请按照本教程中的上一步骤Prepare MATLAB Function for Code Generation进行操作。或者运行脚本 collatz_step2.m。
检查和运行测试脚本
编写执行入口函数的脚本。对于本教程,请检查测试脚本 collatz_test.m.
type collatz_test.mrng(10)
nums = randi(100,1,10);
maxLen = 0;
numMax = 0;
for i = 1:numel(nums)
seq = collatz(nums(i));
if i == 1
minLen = numel(seq);
numMin = nums(i);
end
if numel(seq)>maxLen
maxLen = numel(seq);
numMax = nums(i);
end
if numel(seq)<minLen
minLen = numel(seq);
numMin = nums(i);
end
end
disp("Maximum steps: ");
disp(num2str(maxLen));
disp("For this random integer: ");
disp(num2str(numMax));
disp(newline);
disp("Minimum steps: ");
disp(num2str(minLen));
disp("For this random integer: ");
disp(num2str(numMin));
此脚本测试 0 到 100 之间随机选择的 10 个整数的 Collatz 猜想,并输出具有最长和最短 Collatz 序列的整数。此脚本使用 rng 函数生成可重现的结果。运行脚本以在 MATLAB 中测试 collatz 函数。
collatz_test
Maximum steps: 36 For this random integer: 78 Minimum steps: 7 For this random integer: 64
使用测试脚本定义输入类型
通过点击 MATLAB Coder 选项卡中的入口函数按钮,打开入口函数选项卡。该 App 显示错误图标 ,因为输入类型未定义。

将自动定义输入类型参数设置为 Using Script 并输入 collatz_test 作为测试脚本。点击运行按钮。该 App 运行测试脚本并将输入参量 n 定义为双精度标量。

接下来,通过生成并运行 MEX 函数来检查 MATLAB 代码中的问题。