matlab 生成重复数据,学习心得之用MATLAB来编辑重复代码

一、问题:

笔者的毕业设计是基于FPGA的数字水平仪设计

在编辑Verilog代码文件的时候需要一个一千行的case语句,目的是为了做一个函数查找表,根据自变量转换之后的地址码来查找该自变量对应的函数的值。需要存储的值有一千个。

需要的语句类似于这种

18233197612100e310ef5de147cbf6e8.png

二、解决方法

1、因为函数数据是根据MATLAB算出来的,所以思路是在MATLAB是编辑一个文本文档,采用一个for循环来输出不同的地址值很函数值,以及相同的字符:

2、将命令窗口输出的结果保存再记事本中。

地址—函数映射图如下

72f5e277da55ed40ca8f4d329332369d.png

然后开始新建一个MATLAB文本文件:采用for循环的方式来书写语句,

for i=1:1006

A=[ '10''d' num2str(i) ':' 'angle=8''d' num2str(c(i)) ';' ];

disp(A)

end

这里需要注意的点是:

1、在MATLAB中有一些特殊字符的输出,其中单撇号“ ’ ”,的对应的字符为“ ‘’ ”,也就是说,当需要输出单撇号的字符的时候,我们需要用两个单撇号来代替“ ‘’ ”

2、MATLAB中的for循环需要加上end 来结束。

3、如果需要输出不带‘ [ ] ’的数据,可以将所有的结果放进一个矩阵变量,在笔者这里就是A。

三、结果

最后截取一部分循环出来的代码:

10'd824:angle=8'd33;

10'd825:angle=8'd33;

10'd826:angle=8'd33;

10'd827:angle=8'd33;

10'd828:angle=8'd32;

10'd829:angle=8'd32;

10'd830:angle=8'd32;

10'd831:angle=8'd32;

10'd832:angle=8'd32;

10'd833:angle=8'd32;

10'd834:angle=8'd32;

10'd835:angle=8'd32;

10'd836:angle=8'd32;

10'd837:angle=8'd31;

10'd838:angle=8'd31;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值