日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

fft的c语言和matlab对比_Matlab系列之程序控制

發布時間:2025/4/16 循环神经网络 76 豆豆
生活随笔 收集整理的這篇文章主要介紹了 fft的c语言和matlab对比_Matlab系列之程序控制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

經過前幾篇的學習,我想對于Matlab的兩種M文件都已經清楚各自的功能并對函數的相關知識有了一定的了解,今天這篇將對Matlab的程序控制結構進行學習,首先要知道在Matlab中,具有四類程序控制結構方式,依次是:條件控制、循環控制、誤差控制和程序終止,接下來一一對其進行介紹。

~Show Time~

1

條件控制語句

在編寫程序時,會根據需要,使用不同的條件控制語句,可以是判斷語句也可以是分支語句。

判斷語句

看到名字,我想你也已經猜到了一些東西,寫過C或者其他相關程序的,都知道一種條件判斷語句,也就是if語句,在Matlab中通常使用if-else-end分支結構,包含單分支、雙分支和多分支3種形式,結構比較簡單。

單分支如下:

if 邏輯表達式 執行代碼塊;end

雙分支:

if 表達式 執行代碼塊1;else 執行代碼塊2;end

多分支:

if 表達式1 執行代碼塊1;else if 表達式2 執行代碼塊2;else 執行代碼塊3;end

以上3種分支結構實現都是一樣,當邏輯表達式或者表達式為真時(邏輯表達式為非空數組、為非零變量、矩陣變量所有元素都非零都為真)則進入相應表達式下的執行代碼塊,然后結束;若為假,則進入下一級表達式判斷,直至判斷結束。

分支語句

可能看到名字,你會有點陌生,但是看到switch后,你是否就恍然大悟了呢~

其結構:

switch 表達式(標量或字符串) case value1 執行代碼塊1; case value2 執行代碼塊1; ............... otherwise 執行代碼塊N;end

結構表達很簡單,當表達式是一個標量時,就與相應的value進行比較,然后進入對應的執行代碼塊,例如和value1相等,就執行代碼塊1;和value2相等,就執行代碼塊2;如果所有的value都不與之相等,則進入otherwise執行相應的的代碼塊;如果表達式是一個字符串,也是一樣的比較,只是MATLAB在比較時會自動調用strcmp函數,也就是字符串比較的函數,從而實現字符串的比較。

接下來對switch語句做個簡單使用:

程序:

switch value case 1 disp('1'); case {2,3,4} disep('2 or 3 or 4'); case 5 disp('5') otherwise disp('Other number');end

手動輸入一個value的值,然后運行腳本進行判斷結果的輸出:

2

循環控制語句

相信大家對于循環語句就更熟悉了,for和while,我想寫過程序的都用過;在MATLAB中的表達可能會和一些語言的表達形式不太一樣,但是使用的效果一致,for的結構為:

for 循環變量=開始值:增量:結束值 循環體end

增量默認為1,可以設置為任何值,其他的使用與C或者相關語言的一致。

演示下嵌套的使用

程序:

for m=1:3 for n=1:5 A(m,n)=1/(m+n-1) endend

分析:

第1、2行代表的就是建立一個3行5列的矩陣,第3行就是具體構建m行n列的矩陣并進行對應元素賦值操作。

結果:

while語句是通過判斷條件表達式的真假性,從而實現循環;

其結構為:

while 條件表達式 循環體end

直接演示一個程序:

n=1;while prod(1:n)<1e100< span=""> n=n+1;end

結果:

這個程序的作用就是計算n!<1e< span="">100的最大n值,其中的prod就是實現數組元素的乘積,當小于1e100的時候,n就進行累加,直至得到最大的n值。

3

誤差控制語句

我看到這個名字的第一眼,其實也是很懵逼的,為什么叫誤差控制呢?然后學了之后就懂意思了,大概是這樣的,類似條件判斷語句,如果if的表達式不對,就進行下一個的判斷或者直接運行else中的代碼塊,只是誤差控制語句變成來try-catch-end的樣子,具體結構:

try 程序代碼塊1,%總被執行,若正確,即跳出此結構catch 程序代碼塊2,%僅當程序代碼塊1出現錯誤,該代碼塊才被執行end

如果程序代碼塊2也錯了,則會終止運行的程序,若還有其他try-catch-end的語句,就會繼續運行下一個try-catch-end,并且可以使用laster命令查看發生錯誤的原因(查看上一處錯誤),演示一段程序:

n=4;A=pascal(3);tryA_n=A(n,:),catchA_end=A(end,:),end

結果:

分析:使用pascal(3)構建了一個3x3的三角形矩陣,但是n=4,因此A_n=A(n,:)這一部分的代碼相當于是錯的,所以進入下一部分,即A_end=A(end,:),然后將最后一行賦值并顯示在窗口。

注意:try-catch-end語句中代碼塊是使用逗號隔開的,而不是分號!!!

4

程序終止語句

在程序設計中通常需要提前終止循環、結束程序的運行、顯示錯誤信息等情況,在MATLAB中,就具有continue、break、return、error等語句,接下來對其進行簡單的介紹。

1、continue語句

該語句常用于循環控制中,使得當次的循環結束,繼續下一次循環,并不是結束整個循環,直接做個演示:

fid=fopen('magic.m','r');count=0;while ~feof(fid)%判斷是否為文本的最后一行 line=fgetl(fid);%讀取當前文本中當前行的下一行 if isempty(line)|strncmp(line,'%',1)%判斷是否是空行或者注釋(判斷%號即可) continue%若是空行或者注釋就退出當次循環 end count=count+1;enddisp(sprintf('%d lines',count));

結果,顯示除去空行以及注釋行后的代碼行數,其中magic是系統內置的一個文件,可以直接在命令窗口行輸入“open magic.m”打卡該文件進行結果的比對:

2、break語句

該語句雖然也是用于循環控制的,但是它的功能是直接中斷當前的循環,不再執行該循環的任何操作,程序演示:

fid=fopen('fft.m','r');s='';while ~feof(fid) line=fgetl(fid); if isempty(line),break,end s=strvcat(s,line);enddisp(s)

結果:

分析:打開fft.m文件進行對比,會發現,在有空行時,就結束了文件內容的打印,關于文件的操作,會在之后的記錄中出現,如果有不懂的地方,可以過段時間再來理解。

3、return語句

該語句就是將結束正在運行的函數,并且返回調用函數,一般是在函數的末尾正常結束函數的運行,也可以是在滿足某種條件的時候強制結束函數運行并返回調用函數,這個就不做程序的演示了。

4、error語句

該語句理解更簡單,就是直接終止當前函數的運行,并且顯示出錯信息,運行程序出錯的時候那一串紅色的字很醒目吧,那就是使用error產生的,當然warning就是使用warning語句了,使用語法:error('error message!!!')

結果:

還有一些語句,因為時間關系就不做介紹了,不過都比較簡單,有的在之前也有過介紹,剩下的可以自行使用幫助系統進行學習使用,有input、keyboard、pause...

END

今天的內容中,如果遇到不懂的命令,我也沒有對其進行講解的,之后我講到其他內容時可能會繼續講到,比如文件操作的相關,如果可以的話,命令行help挺好的

閱讀本文共使用????秒

電子知識

一些電路設計與DIY作品

電子設計技巧與經驗

FPGA

System Generator系列教程

算法介紹

通信協議分析

資料分享

Matlab系列記錄

建設中~

點個贊

再走吧

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的fft的c语言和matlab对比_Matlab系列之程序控制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。