主要内容

在 MATLAB Coder 中自动定义输入类型

由于 C 和 C++ 中的变量采用静态定型,因此当您生成代码时,代码生成器必须确定您的 MATLAB® 文件中所有变量的类型。您必须为入口函数的所有输入指定类、大小和其他属性。要在 MATLAB Coder™ 中指定输入类型,您可以:

  • 通过测试脚本或在命令行中调用入口函数,指示 App 自动确定输入类型。

  • 直接指定属性。

在本教程的此步骤中,您将通过测试脚本调用入口函数,指示 App 自动确定输入类型。

要设置工程文件并将入口函数添加到工程中,请按照本教程中的上一步骤Prepare MATLAB Function for Code Generation进行操作。或者运行脚本 collatz_step2.m

检查和运行测试脚本

编写执行入口函数的脚本。对于本教程,请检查测试脚本 collatz_test.m.

type collatz_test.m
rng(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 代码中的问题。

另请参阅

主题