Matlab 代码 转成 C/C++ 代码

Matlab 代码 转成 C/C++ 代码

matlab代码转c/c++详细教程

1.将matlab代码的输入输出删除

如 a = input("a");,类似于这种matlab语句先删除,为什么要这样?请看第二步

这里还有一点注意事项,请看第5步.

2.将代码封装为一个函数

模板如下:

1 function [返回参数列表] = func1(输入参数)
2  
3 你的程序放在这里,不要有输入输出语句
4  
5 end

将输入语句全部换成函数的输入参数,例如,上面的a = input("a")删除以后,将a放入输入参数,有多少个放多少个,用“,”隔开,所以说要先删除输入输出语句,输入作为函数的入口参数,输出作为返回值:

1 function [返回参数列表] = func1(a)
2  
3 你的程序放在这里,不要有输入输出语句
4  
5 end

然后将你的代码放在function里面,不管有多复杂,例如:

1 function  func1(m,b,L,n,H,Q,E,u,C0)
 2 %下面的代码不用管
 3 l=L/n; 
 4 h=H/n; 
 5 Q=Q./(b*l);
 6 a = [0.0,0.0,0.0,0.0];
 7 for i=1:m
 8 a(i)=u(i)*h;
 9 end
10 e = [0.0,0.0,0.0,0.0];
11 for i=1:m-1
12 e(i)=E(i)*l/h;
13 end
14 A = [0.0,0.0,0.0,0.0;0.0,0.0,0.0,0.0;0.0,0.0,0.0,0.0;0.0,0.0,0.0,0.0;];
15 A(1,1)=a(1)+e(1);
16 A(m,m)=a(m)+e(m-1);
17 A(1,2)=-e(1);
18 A(m,m-1)=-e(m-1);
19 for i=2:m-1
20 A(i,i)=a(i)+e(i-1)+e(i);
21 A(i,i-1)=-e(i-1);
22 A(i,i+1)=-e(i);
23 end
24 a=a';
25 C0=C0';
26 D1=a.*C0;
27 D1(1)=D1(1)+Q(1)*l;
28 C1=inv(A)*D1;
29 D2=a.*D1;
30 D2(1)=D2(1)+Q(2)*l;
31 C2=inv(A)*D2;
32 D3=a.*D2;
33 D3(1)=D3(1)+Q(3)*l;
34 C3=inv(A)*D3;
35 D4=a.*D3;
36 D4(1)=D4(1)+Q(4)*l;
37 C4=inv(A)*D4;
38 CC=[C1,C2,C3,C4];
39 %上面的代码不用管
40 end

中间全部都是待转换的matlab代码,不用管

3.新创建一个文件,用于说明函数入口参数的类型

Matlab 代码 转成 C/C++ 代码

按照以下格式编写:

1 clear all;
 2 clc;
 3 close all;
 4  
 5 %下面是输入参数的样例
 6 m = 4;
 7 b = 1000;
 8 L = 4000;
 9 n = 4;
10 H = 120;
11 Q = [0.1,0.3,0.4,0.2];
12 E = [0.25,0.25,0.25,0.25];
13 u = [4,4,4,4];
14 C0 = [0.1 0.1 0.2 0.3];
15 a = []
16 %上面是输入参数的样例
17 %下面是函数的调用
18 func1(m,b,L,n,H,Q,E,u,C0);

4.使用matlab coder开始转换

下面的操作就是点NEXT
Matlab 代码 转成 C/C++ 代码
* 找到matlab coder

Matlab 代码 转成 C/C++ 代码

  • 打开我们之间用函数封装的代码

  • NEXT

Matlab 代码 转成 C/C++ 代码

  • 选择第3步编写的文件

Matlab 代码 转成 C/C++ 代码

  • 检查一下

Matlab 代码 转成 C/C++ 代码

Matlab 代码 转成 C/C++ 代码

Matlab 代码 转成 C/C++ 代码

到这里就大功告成了,文件信息如下

Matlab 代码 转成 C/C++ 代码

5.注意

在第一步的时候,除了删除输入输出语句外,还需要改一些未声明的变量,例如:

1 for i=1:m
2 a(i)=u(i)*h;
3 end

在matlab中 a(i)是可以直接使用不需要声明的,但是在转换的时候需要先人为定义a这个数据类型,如:

1 a = [0.0,0.0,0.0,0.0];
2 for i=1:m
3 a(i)=u(i)*h;
4 end

原文链接: https://www.cnblogs.com/ybqjymy/p/16520254.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/190549

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 下午4:14
下一篇 2023年2月12日 下午4:15

相关推荐