欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Matlab中如何實(shí)現(xiàn)將長(zhǎng)字符串換行寫(xiě)

 更新時(shí)間:2024年01月04日 14:45:52   作者:Joyce_Ng  
這篇文章主要介紹了Matlab中如何實(shí)現(xiàn)將長(zhǎng)字符串換行寫(xiě)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

太長(zhǎng)不看版

舉例如下:

% 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);
  • 加上中括號(hào);
  • 將長(zhǎng)字符串分割成多個(gè)子字符串;
  • 子字符串之間至少隔一個(gè)空格;
  • 換行符用...

正文

最近在搞畢設(shè)的東西,其中有一個(gè)需要寫(xiě)很麻煩的verilog文件。

麻煩但是卻不復(fù)雜,LDPC的編碼器,大概就是一個(gè)200多bits寬的輸入信號(hào),500多bit寬的輸出信號(hào),輸出每個(gè)bit都是由某些輸入的bit進(jìn)行相同的運(yùn)算得到的,用一個(gè)200多*500多的矩陣表示對(duì)應(yīng)關(guān)系。

如果要單純寫(xiě)verilog,會(huì)死人的,如果在verilog里寫(xiě)生成邏輯,又要占用很大的內(nèi)存來(lái)存放生成矩陣,而且邏輯難寫(xiě)。于是就想到用Matlab代碼來(lái)生成verilog代碼。

Matlab里有fprintf函數(shù)可以輸出數(shù)據(jù)到文件。

舉個(gè)栗子:

fprintf(fID,'Hello world!');

就可以把“Hello world!”輸出到fID對(duì)應(yīng)的文件中。

打開(kāi)文件的函數(shù)是fID = fopen('filepath/filename.postfix','w');其中w表示寫(xiě)入,如果是讀取則換成r,更多用法請(qǐng)help fopen

那么問(wèn)題來(lái)了,如果我把verilog代碼的每一行分別用一個(gè)fprintf輸出,那么我的.m文件就會(huì)充斥著一大堆fprintf,我這個(gè)強(qiáng)迫癥對(duì)這種高度重復(fù)的代碼簡(jiǎn)直不能忍。

但是如果我把每個(gè)功能塊單獨(dú)寫(xiě)在一個(gè)fprintf里,可讀性確實(shí)高很多,但是fprintf那行就會(huì)很長(zhǎng),同樣不能忍,并且修改的時(shí)候會(huì)非常痛苦!

于是我就去找有沒(méi)有類似Linux腳本中‘\’的換行符,讓解釋器把多行代碼當(dāng)成一行去執(zhí)行。

確實(shí)有這個(gè)換行符,

... ←三個(gè)點(diǎn)就是Matlab里的換行符。可以將該行的尾部和下一行的頭部連接起來(lái)。

但是另一個(gè)問(wèn)題就出來(lái)了,這個(gè)換行符沒(méi)辦法用在字符串中間,我把一整塊的代碼當(dāng)成一個(gè)字符串,如果中間加上換行符,那么解釋器會(huì)把換行符也當(dāng)做要輸出的內(nèi)容,一起輸出去了。

由于 fprintf 的參數(shù)分別為:文件handler、輸出array、輸出數(shù)據(jù)(如有)。

舉栗子:

fprintf( fID, 'data1: %d\n', data1);

其中中間的字符串會(huì)被當(dāng)成一個(gè)只有一個(gè)元素的array。

所以解決方法就來(lái)了,只要把中間的array多加幾個(gè)元素,就可以分割長(zhǎng)字符串,并在子字符串之間添加換行符。

舉栗子:

% 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);

用單引號(hào)括起來(lái)的每一個(gè)小字符串會(huì)被解釋為輸出array的一個(gè)元素,子字符串之間用空格(可多個(gè),至少一個(gè)) 或逗號(hào)隔開(kāi),即一個(gè)單行的矩陣(array)。

中括號(hào)必不可少,是將各子字符串結(jié)合為一個(gè)array的標(biāo)識(shí)。

另外因?yàn)関erilog里經(jīng)常需要輸出類似 3b'101之類的東西,而單引號(hào)會(huì)被當(dāng)做元素的起/止符。想要輸出單引號(hào),就需要連續(xù)打2個(gè)單引號(hào)。

比如:

fprintf(fID, 'outdata <= 3''b101 ')

這也是為什么兩個(gè)子字符串中間至少要有一個(gè)空格的原因,如果沒(méi)有空格就會(huì)被連接起來(lái),并且中間多了個(gè)單引號(hào)。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python 字典的使用詳解及實(shí)例代碼

    Python 字典的使用詳解及實(shí)例代碼

    今天小編幫大家簡(jiǎn)單介紹下Python的一種數(shù)據(jù)結(jié)構(gòu): 字典,字典是 另一種可變?nèi)萜髂P停铱纱鎯?chǔ)任意類型對(duì)象,它用于存放具有映射關(guān)系的數(shù)據(jù),通讀本篇對(duì)大家的學(xué)習(xí)或工作具有一定的價(jià)值,需要的朋友可以參考下
    2021-11-11
  • 關(guān)于Python中的空值問(wèn)題及解決

    關(guān)于Python中的空值問(wèn)題及解決

    這篇文章主要介紹了關(guān)于Python中的空值問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Python+ChatGPT制作一個(gè)AI實(shí)用百寶箱

    Python+ChatGPT制作一個(gè)AI實(shí)用百寶箱

    ChatGPT最近在互聯(lián)網(wǎng)掀起了一陣熱潮,其高度智能化的功能能夠給我們現(xiàn)實(shí)生活帶來(lái)諸多的便利。本文就來(lái)用Python和ChatGPT制作一個(gè)AI實(shí)用百寶箱吧
    2023-02-02
  • Python 保持登錄狀態(tài)進(jìn)行接口測(cè)試的方法示例

    Python 保持登錄狀態(tài)進(jìn)行接口測(cè)試的方法示例

    這篇文章主要介紹了Python 保持登錄狀態(tài)進(jìn)行接口測(cè)試的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • 在SAE上部署Python的Django框架的一些問(wèn)題匯總

    在SAE上部署Python的Django框架的一些問(wèn)題匯總

    這篇文章主要介紹了在SAE上部署Python的Django框架的一些問(wèn)題匯總,SAE是新浪的一個(gè)在線APP部署平臺(tái),并且對(duì)Python應(yīng)用提供相關(guān)支持,需要的朋友可以參考下
    2015-05-05
  • Django框架實(shí)現(xiàn)的分頁(yè)demo示例

    Django框架實(shí)現(xiàn)的分頁(yè)demo示例

    這篇文章主要介紹了Django框架實(shí)現(xiàn)的分頁(yè)demo,結(jié)合實(shí)例形式分析了Django框架分頁(yè)的步驟、原理、相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2019-05-05
  • python中內(nèi)置類型添加屬性問(wèn)題詳解

    python中內(nèi)置類型添加屬性問(wèn)題詳解

    這篇文章主要介紹了python中內(nèi)置類型添加屬性問(wèn)題詳解,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • Python中SyntaxError: invalid syntax報(bào)錯(cuò)解決

    Python中SyntaxError: invalid syntax報(bào)錯(cuò)解決

    在編寫(xiě)Python代碼時(shí),常見(jiàn)的SyntaxError錯(cuò)誤通常由括號(hào)不匹配、關(guān)鍵字拼寫(xiě)錯(cuò)誤或不正確的縮進(jìn)引起,本文詳細(xì)介紹了錯(cuò)誤原因及多種解決方案,包括檢查括號(hào)、關(guān)鍵字,以及使用IDE的語(yǔ)法檢查功能等,感興趣的可以了解一下
    2024-09-09
  • 用實(shí)例解釋Python中的繼承和多態(tài)的概念

    用實(shí)例解釋Python中的繼承和多態(tài)的概念

    這篇文章主要介紹了用實(shí)例解釋Python中的繼承和多態(tài)的概念,繼承和多臺(tái)是學(xué)習(xí)每一門面對(duì)對(duì)象的編程語(yǔ)言時(shí)都必須掌握的重要知識(shí),需要的朋友可以參考下
    2015-04-04
  • Python模塊結(jié)構(gòu)與布局操作方法實(shí)例分析

    Python模塊結(jié)構(gòu)與布局操作方法實(shí)例分析

    這篇文章主要介紹了Python模塊結(jié)構(gòu)與布局操作方法,結(jié)合實(shí)例形式分析了Python模塊與布局的相關(guān)概念、使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-07-07

最新評(píng)論