Matlab高级教程_第三篇:Matlab转码C/C++方式(混编)_第二部分

  这一部分通过一些实例来进行转码和调试的讲解:

1. 输入变量、输出变量和过程内变量的内存预分配

函数代码:函数名test

function [A,B] = test( mark,num,array )%#codegen
%输入参数中,mark、num是标量,array是向量  
a=ones(1,5);  
b=zeros(1,5);  
% 为A B预分配个内存大小  
A=ones(1,5);  % 输出变量预分配大小
B=zeros(1,5);  % 输出变量预分配大小
    if mark==0  
        for i=1:num  
             if i==1  
                 A=a;  
                 B=b;  
             else  
                 A=[A,a];  
                 B=[B,b];     
             end  
        end  
    else  
        for i=1:num  
             if i==1  
                 A=a;  
                 B=b;  
             else  
                 A=[A,array];  
                 B=[B,array];     
             end  
        end  
    end  
end  

测试脚本:main

[A,B]=test( 3,4,[1 2 5 6 8] )

输入变量内存大小分配上面,最后一个为向量先固定为和设定为inf

可以看到内存是可以预分配长短的

2. 生成代码和相关报告内容

生成相关文件:

对应MATLAB当中生成的文件

比较乱还有比较多,包括在lib静态链接库的文件内容,codegen解码内容,测试样本等等。

我们还是打开MATLAB coder最终生成的报告:

我们看到在报告生成文件列表当中,只包含了头文件.h和源文件.c格式的文件

和标准演示在VS当中就是少了main这个演示文档文件,如果要在VS里面调试要把这个演示脚本拿回来

原文地址:https://www.cnblogs.com/noah0532/p/9511349.html