太长不看版

举例如下:

% Port definition
fprintf(fID,[...'\n'...'input clk;'                    '\n'...'input rst_n;'                  '\n'...'input [%d:0] msg;'             '\n'...%row-1'input in_valid;'               '\n'...'output reg [%d:0] codeword;'   '\n'...%col-1'output reg out_valid;'         '\n'...],row-1,col-1);
  • 加上中括号;
  • 将长字符串分割成多个子字符串;
  • 子字符串之间至少隔一个空格;
  • 换行符用...

正文

最近在搞毕设的东西,其中有一个需要写很麻烦的verilog文件。麻烦但是却不复杂,LDPC的编码器,大概就是一个200多bits宽的输入信号,500多bit宽的输出信号,输出每个bit都是由某些输入的bit进行相同的运算得到的,用一个200多*500多的矩阵表示对应关系。如果要单纯写verilog,会死人的,如果在verilog里写生成逻辑,又要占用很大的内存来存放生成矩阵,而且逻辑难写。于是就想到用Matlab代码来生成verilog代码。

Matlab里有fprintf函数可以输出数据到文件。
举个栗子,fprintf(fID,'Hello world!');就可以把“Hello world!”输出到fID对应的文件中。
打开文件的函数是fID = fopen('filepath/filename.postfix','w');其中w表示写入,如果是读取则换成r,更多用法请help fopen

那么问题来了,如果我把verilog代码的每一行分别用一个fprintf输出,那么我的.m文件就会充斥着一大堆fprintf,我这个强迫症对这种高度重复的代码简直不能忍。但是如果我把每个功能块单独写在一个fprintf里,可读性确实高很多,但是fprintf那行就会很长,同样不能忍,并且修改的时候会非常痛苦!
于是我就去找有没有类似Linux脚本中‘\’的换行符,让解释器把多行代码当成一行去执行。

确实有这个换行符,
... ←三个点就是Matlab里的换行符。可以将该行的尾部和下一行的头部连接起来。
但是另一个问题就出来了,这个换行符没办法用在字符串中间,我把一整块的代码当成一个字符串,如果中间加上换行符,那么解释器会把换行符也当做要输出的内容,一起输出去了。

由于 fprintf 的参数分别为:文件handler、输出array、输出数据(如有)。
举栗子:fprintf( fID, 'data1: %d\n', data1);
其中中间的字符串会被当成一个只有一个元素的array。
所以解决方法就来了,只要把中间的array多加几个元素,就可以分割长字符串,并在子字符串之间添加换行符。

举栗子:

% Port definition
fprintf(fID,[...'\n'...'input clk;'                    '\n'...'input rst_n;'                  '\n'...'input [%d:0] msg;'             '\n'...%row-1'input in_valid;'               '\n'...'output reg [%d:0] codeword;'   '\n'...%col-1'output reg out_valid;'         '\n'...],row-1,col-1);

用单引号括起来的每一个小字符串会被解释为输出array的一个元素,子字符串之间用空格(可多个,至少一个) 或逗号隔开,即一个单行的矩阵(array)。
中括号必不可少,是将各子字符串结合为一个array的标识。

另外因为verilog里经常需要输出类似 3b'101之类的东西,而单引号会被当做元素的起/止符。想要输出单引号,就需要连续打2个单引号。比如:fprintf(fID, 'outdata <= 3''b101 ')。这也是为什么两个子字符串中间至少要有一个空格的原因,如果没有空格就会被连接起来,并且中间多了个单引号。

Matlab中如何将长字符串换行写相关推荐

  1. matlab disp输出换行,Matlab中使用disp函数将长字符串换行输出

    Matlab中怎么使用disp函数将长字符串换行输出 ** 最近在使用Matlab写程序的时候遇到了一个不大不小的问题: 在使用disp函数输出长字符串的时候无法换行,在网上找了很久也没有解决, 最后 ...

  2. MATLAB中的各种文本说明换行操作

    MATLAB中的各种文本说明换行操作 在利用MATLAB画图时,我们常常会在图像中添加文本,以对具体图像进行标记或说明. 例如,给图像添加一个title,添加坐标轴说明,利用text, legend, ...

  3. MATLAB中字符变量(char)和字符串变量(string)的异同

    文章目录 MATLAB中字符变量(char)和字符串变量(string)的异同 1.表现形式上 2.相同用法 3.差异 4.两者转换 MATLAB中字符变量(char)和字符串变量(string)的异 ...

  4. 用ES6中的模板字符串实现在字符串中添加变量和字符串换行

    什么是模板字符串 它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量. 例如: var str1 = '你好吗' +'李华';var str2 = `你好吗 李华`;conso ...

  5. java返回字符串浏览器换行_解决浏览器显示页面长字符串换行问题总结

    问题产生 在web页面HTML中,容器(div,table等)中如果放入过长的字符串(英文.数字和部分标点符号组成,无空格),将会撑大容器,破坏页面外观. 出现这种情况基本有两个可能: 1. 人为的恶 ...

  6. histeq matlab原理,MATLAB中histeq的原理以及自写的具体实现函数

    1.什么是直方图? 直方图是数字图像处理中一个简单而重要的常用工具,它从总体上刻画了一幅图像的灰度内容. 具体来说,直方图描述的是图像中具有各灰度级的出现的概率(像素的个数),其横坐标为灰度级,纵坐标 ...

  7. matlab中图像太大,图像处理:算法在MATLAB中耗时太长

    您可以使用im2col *将图片转换为列格式,以便每个块形成[64 * 4096]矩阵的列.然后对每列应用转换,并使用bsxfun来向量化错误计算. DomainImage=rand(512); Ra ...

  8. matlab tf离散,求matlab离散化程序对于一个二阶传函,求其在MATLAB中的离散化程序.抱歉,没办法写清楚传函表达式.我试试:Gp(...

    共回答了23个问题采纳率:87% clear all; close all; ts=0.001; J=1/147; q=22/147; sys=tf(1,[J,q,0]); dsys=c2d(sys, ...

  9. c# 拼接字符串换行_C#长字符串换行输入

    加入@符号 private static string sql = @"SELECT Sysobjects.name AS TABLE_NAME, syscolumns.Id, syscol ...

最新文章

  1. gevent.joinall()开启协程
  2. 【完结】有三AI阿里云的深度学习基础课程暂时完结,欢迎扩散学习
  3. WPF入门(一)——绑定Binding
  4. IOS高级编程之二:IOS的数据存储与IO
  5. FFmpeg--命令详解
  6. 广告主成本怎么又超了!
  7. 程序员必备的10大健康装备!
  8. 留言板php数据库_php实现留言板功能(连接数据库)的实例讲解
  9. DCN可形变卷积实现1:Python实现
  10. 程序员面试注意几点就够了
  11. 防火墙与路由器的区别
  12. 典型问题分析——三方应用网络异常分析方法
  13. 什么是项目集(PgMP)?
  14. English 动词篇
  15. 软件测试面试题(二)
  16. php日志写什么内容,Monolog-PHP日志类库介绍
  17. 【web课程设计】HTML+CSS仿QQ音乐网站
  18. 解决火车头7.6版本无法采集部分https网站处理方法
  19. 判断iOS6/iOS7, 3.5inch/4.0inch
  20. 奥巴马当选总统之芝加哥演讲全文及…

热门文章

  1. electron-vue更新依赖
  2. 【阿里巴巴百川掌中测 限量内测招募啦】来自阿里的移动开发测试洪荒之力
  3. VSCode配置格式化工具(Prettier/Vetur/ESLint)和jsconfig.json
  4. unity中计算不规则模型的体积与表面积—三角面片与四面体
  5. python 的魔方方法__getattribute__ 和__getattr__方法介绍
  6. 咋筛选变量进入多因素回归 纳入变量 变量选择 类似机器学习的特征选择 cox回归分析cox多因素
  7. sqlyog导入数据的两种方式
  8. js使用策略模式实现表单验证
  9. QPainter绘制文本 二
  10. Windows 7 绿联蓝牙适配器5.0连接蓝牙耳机失败解决方案