国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試

這篇具有很好參考價值的文章主要介紹了數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.if語句

(1)分段函數(shù)的引入(這里的數(shù)據(jù)表示的是分?jǐn)?shù)的不同區(qū)間對應(yīng)的等級)

數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試,數(shù)學(xué)建模,算法

(1)這個就是一個十分簡單的if語句,無論是if還是elseif后面都是不能添加任何分號的,這個例子就是一個分段的函數(shù),在不同的區(qū)間賦予不同的等級,這里劃分了1,2,3,4一共4個等級,只有前面的三個全部都不滿足的時候,才會執(zhí)行第四個語句,另外if,elseif的后面都需要添加判斷的條件的,但是else的后面不需要添加任何的條件,這個需要注意,后面我們會使用到;

(2)實際上的代碼這樣寫就已經(jīng)是我們簡化以后的代碼了,因為我們想要表達(dá)的是80~90之間dengji(等級)是2,但是我們只需要寫大于80就會進(jìn)行判斷,為什么呢?因為我們的循環(huán)從上向下執(zhí)行,當(dāng)x>90不滿足的時候,就已經(jīng)把我們的判斷區(qū)間定位在了90分以下,這個時候我們只寫x>80實際上表達(dá)的就是80~90這個分?jǐn)?shù)段的等級;

(2)數(shù)組元素大小的判斷

我們這個要實現(xiàn)的就是一個簡單的數(shù)組里面的兩個元素比較大小,并且按照從大到小排列;

我們下面展示的是兩種不同的寫法,你能發(fā)現(xiàn)它們之間的差別嗎?

數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試,數(shù)學(xué)建模,算法

我們這個只是使用了if,else語句,十分簡潔;

數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試,數(shù)學(xué)建模,算法

這段代碼我們使用了if,elseif語句,這樣同樣可以實現(xiàn)這個排序的功能;

其實對于初學(xué)者而言,第二種的代碼多了一些,但是他的閱讀以及對于程序的理解會更加的直觀,我們需要知道的是使用elseif語句,后面是必須要有判斷的條件的,但是如果直接使用else,就不需要添加任何的條件了;

(3)代碼風(fēng)格

對于我們的語句,尤其是循環(huán)語句,好的代碼風(fēng)格能夠讓人賞心悅目,我們在寫代碼的時候一定要注意縮進(jìn)以及留白,這樣更有利于讀者的理解,MATLAB里面也有對于我們寫的代碼進(jìn)行縮進(jìn)的功能:智能縮進(jìn)這個指令能夠讓我們的代碼更加的清晰;

數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試,數(shù)學(xué)建模,算法

(4)if語句的嵌套

我們的案例是計算a,b,c三個數(shù)里面的最大值,這個有多種方法,我們可以借助函數(shù)max,我們也是可以使用if,elseif,elseif,else語句進(jìn)行判斷,但是這個地方我們使用嵌套的if語句判斷(只是為了介紹嵌套if語句的用法);

數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試,數(shù)學(xué)建模,算法

根據(jù)上面的思路,我們使用下面的嵌套if語句進(jìn)行求解最大值;

數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試,數(shù)學(xué)建模,算法

顯然,這樣的嵌套更加復(fù)雜,一般我們不會建議使用,但是我們應(yīng)該能夠理解看懂。

2.switch--case語句

(1)基本的用法

數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試,數(shù)學(xué)建模,算法

這個就是switch的一個簡單的適用的場景,我們使用case找到與之相互匹配的條件,最后打印是這個季度,我們推薦使用的是函數(shù)disp:

實際上,因為這個季節(jié)是隨機(jī)生成的,我們經(jīng)過多組測試就可以發(fā)現(xiàn)會有不同的打印結(jié)果;

disp函數(shù)的主要的作用就是把其后面的括號里面的內(nèi)容打印顯示在我們的屏幕上面,我們都知道,如果在一條語句的末尾加上冒號,其實語句的結(jié)果可以計算,但是不會再命令行的窗口進(jìn)行顯示,disp克服了這個問題,我們這里實在disp這條語句的末尾加上了冒號,實際上,無論我們加或者不加,結(jié)果都會顯示在屏幕上面的(讀者下去可以自行的嘗試)

當(dāng)然,實現(xiàn)打印的方式肯定不止disp這一種方法,我們可以定義變量,最后打印變量,但是這樣做以后,打印的結(jié)果不會很干凈,不像我們的disp函數(shù),他只會打印我們語句里面的內(nèi)容,但是如果定義變量的話,變量和語句都會打印,顯然就不如disp的效果好(打印結(jié)果如下所示);

數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試,數(shù)學(xué)建模,算法

(2)switch易錯題目總結(jié)

數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試,數(shù)學(xué)建模,算法

這里的答案是只有n=0時,才會打印成績合格,相信有很多的小伙伴和我一樣,認(rèn)為只要n時一個大于60的數(shù),就會打印成績合格,實際上并非如此,這里主要的原因是case后面的語句真值要么是0,要么是1,當(dāng)n=0時,switch后面的值是0,case后面的n>=60顯然不符合題意,所以也是假的(我們用0進(jìn)行表示),n=1時候,case后面的語句是假的,但是switch后面的判斷n=1,兩者是不等的,就不會打印成績合格;

這個程序顯然不是我們想要表達(dá)的意思,我們想要表達(dá)的是60分以上的都打印成績合格,否則打印不合格,我們想要達(dá)到這個效果,只需要把switch語句后面的n改寫為1或者是true,這樣我們輸入的n只要大于60就是true,這樣就和我們switch后面的開關(guān)匹配了,就符合我們的想法了。掌握了這個,我們就可以在if語句和switch語句之間做到靈活的轉(zhuǎn)換了。

(3)switch語句&&元胞數(shù)組


元胞數(shù)組里面的數(shù)據(jù),可以是不同類型,不同大小的數(shù)據(jù);我們前面使用的普通矩陣就是一個數(shù)值數(shù)組,里面數(shù)據(jù)的類型是一樣的,使用的是中括號:

數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試,數(shù)學(xué)建模,算法


元胞數(shù)組是使用的大括號括起來的:

數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試,數(shù)學(xué)建模,算法

顯然元胞數(shù)組就會顯示cell標(biāo)志,這個在普通的數(shù)組里面是不會顯示的;


元胞數(shù)組和普通數(shù)組之間的相互轉(zhuǎn)換:

數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試,數(shù)學(xué)建模,算法

上面的是普通的數(shù)組(實質(zhì)就是一個矩陣),打印的就是一個1*7的矩陣;

下面的是使用我們的num2cell函數(shù)把一個普通的數(shù)組轉(zhuǎn)換為元胞數(shù)組;


元胞數(shù)組和普通數(shù)組在存儲上面的區(qū)別:

數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試,數(shù)學(xué)建模,算法

我們可以發(fā)現(xiàn),普通數(shù)組就是一個數(shù)組,里面有很多個元素,元胞數(shù)組可以理解為是很多數(shù)組的結(jié)合(因為我們通過打印元胞數(shù)組可以發(fā)現(xiàn)元胞數(shù)組里面的每個元素都是數(shù)組);


細(xì)節(jié)聲明不同點:

我們比較一下下面的兩種不同的寫法打印的效果,顯然,我們在2:8這個矩陣外面加或者不加都不影響打印結(jié)果,因為系統(tǒng)會自動識別它的類型,我們需要知道的是num2cell是一個函數(shù),后面的括號就是要寫函數(shù)參數(shù),我們的中括號就是要聲明我們加入的數(shù)據(jù)就是矩陣,我們不加的話也不會影響打印的結(jié)果(這個是我初學(xué)的時候比較疑惑的問題,上機(jī)運行才發(fā)現(xiàn)打印的結(jié)果是一樣的)

數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試,數(shù)學(xué)建模,算法

其實這樣的例子還有許多:

數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試,數(shù)學(xué)建模,算法

這個就是隨機(jī)生成1~12的數(shù)字作為月份,我們可以發(fā)現(xiàn)正確的生成方法就是在1,12的外面加上中括號,表示數(shù)據(jù)的生成范圍,但是如果我們不加中括號,就表示的生成數(shù)字全是1的矩陣,維度是12(行數(shù)和列數(shù)都是12,我們只寫了一個,兩個12都寫打印的結(jié)果是相同的),打印的結(jié)果就會截然不同了;

小結(jié):相同的省略(都是省略中括號),打印的結(jié)果截然不同(第一個不影響,第二個就完全不同),我們平時在使用的時候,應(yīng)當(dāng)注意比較這些異同點;


2個具體的實例:

數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試,數(shù)學(xué)建模,算法

這個案例就是利用這個隨機(jī)生成的數(shù)據(jù),匹配case后面的元胞數(shù)組里面的月份;最后顯示季節(jié);

第二個案例:

數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試,數(shù)學(xué)建模,算法

這個案例使用元胞數(shù)組打印成績的等級(因為90~100都是A等級,所以元胞數(shù)組就是{9,10}),fix函數(shù)的作用就是取整函數(shù),就是把小數(shù)部分給舍掉;

數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試,數(shù)學(xué)建模,算法

這里把switch后面的開關(guān)改寫為了a,這個時候的91如果想要打印A等級,就需要改寫case后面的語句,這個案例提供了3種寫法,第一種會被理解為一個元胞數(shù)組,所以不會打印A等級,第二種就是枚舉所有的可能情況,可以打印對應(yīng)的等級;第三種就是使用num2cell把數(shù)組轉(zhuǎn)換為元胞數(shù)組,這里比較容易想的是第一種寫法,但是這個想法是不對的(后面的case后的8,7,6也可以按照這個進(jìn)行改寫,這里只演示一個);


3.for語句斷點調(diào)試功能

數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試,數(shù)學(xué)建模,算法

我們要想知道這個循環(huán)的具體的執(zhí)行過程,就可以進(jìn)行調(diào)試,下面我是以2023a的版本進(jìn)行實現(xiàn)的

(1)首先我們認(rèn)識一下運行節(jié),運行,和步進(jìn)數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試,數(shù)學(xué)建模,算法

在我們的實時腳本里面,我們可以劃分不同的運行節(jié),我們選擇運行節(jié)(就是上面的1)就只會運行我們所打的斷點那個運行節(jié)里面的內(nèi)容,我們點擊運行就會運行實時腳本里面所有的代碼(一般不會這樣做,除非是大型的項目,一般我們練習(xí)的調(diào)試都是運行節(jié)),步進(jìn)就是一步一步地執(zhí)行,這個步進(jìn)就是在調(diào)試的過程中使用的,來控制調(diào)試;

(2)打斷點:就是在行號上面點擊出現(xiàn)紅色的方框,這個表示設(shè)置斷點成功:

數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試,數(shù)學(xué)建模,算法

(3)運行的過程:我們設(shè)置斷點過以后,程序就會從斷點的位置開始運行,我們點擊步進(jìn)就會一步一步地執(zhí)行,循環(huán)的過程以及變量的值變化的過程都可以看見:

數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試,數(shù)學(xué)建模,算法

這里我設(shè)置了2個斷點,調(diào)試開始以后,我們就會發(fā)現(xiàn),上方的實時編輯器增加了新的功能:

繼續(xù):我們只有設(shè)置多個斷點的時候,繼續(xù)這個選項才會發(fā)生作用,我的設(shè)置270,274行2個斷點,如果開始以后箭頭指向270行,這個時候如果是步進(jìn),就會一步一步地執(zhí)行循環(huán),每一步的結(jié)果都可以看到(下面會講到),但是如果執(zhí)行的是“繼續(xù)”,就會直接跳到下一個斷點的位置,也就是274行,直接打印s的數(shù)值(這個和我們不調(diào)試直接運行其實就沒有區(qū)別了,因為這樣就會直接打印結(jié)果);

步進(jìn):和上面的一樣,控制調(diào)試的過程執(zhí)行;

步入步出:這個后續(xù)在自定義函數(shù)會用到,這個后續(xù)介紹,了解即可;

停止:這個就很直接了,直接停止我們調(diào)試的過程;

(4)工作區(qū)觀察循環(huán)的每個步驟:

數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試,數(shù)學(xué)建模,算法

右邊的工作區(qū)可以直觀地觀察調(diào)試的時候,每個變量的大小的變化的情況,這里顯示的是ii=6,這個是因為循環(huán)已經(jīng)結(jié)束了,如果開始調(diào)試每一次循環(huán),ii的數(shù)值都會加一,s的數(shù)值一直在累加,所以它的數(shù)值隨著循環(huán)的進(jìn)行也會不斷地發(fā)生變化;

(5)變式解決

數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試,數(shù)學(xué)建模,算法

我們上面的使用逗號隔開,是行向量,如果使用分號隔開,就變成了列向量,發(fā)現(xiàn)循環(huán)以后打印的是列向量的本身;

這個是因為我們每次循環(huán)時,會取出一列參加運算,如果是行向量,每次取出來一列(相當(dāng)于就是一個數(shù)字,因為一個數(shù)字可以看作是行數(shù)為1的列向量),如果是列向量,直接取出一列,相當(dāng)于循環(huán)就直接進(jìn)行了一次,就把列向量輸出了,并不是我們想要的結(jié)果;

解決方案:

數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試,數(shù)學(xué)建模,算法

第二種:

數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試,數(shù)學(xué)建模,算法

這種做法就比較無腦了,就是無論你是行向量還是列向量,我都把你轉(zhuǎn)換成列向量,然后進(jìn)行轉(zhuǎn)置,最后經(jīng)過循環(huán)輸出結(jié)果。文章來源地址http://www.zghlxwxcb.cn/news/detail-846804.html

到了這里,關(guān)于數(shù)學(xué)建模-------MATLAB分支循環(huán)&&斷點調(diào)試的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【數(shù)學(xué)建?!俊秾崙?zhàn)數(shù)學(xué)建模:例題與講解》第五講-微分方程建模(含Matlab代碼)

    【數(shù)學(xué)建模】《實戰(zhàn)數(shù)學(xué)建模:例題與講解》第五講-微分方程建模(含Matlab代碼)

    如果這篇文章對你有幫助,歡迎點贊與收藏~ 微分方程建模是數(shù)學(xué)建模中一種極其重要的方法,它在解決眾多實際問題時發(fā)揮著關(guān)鍵作用。這些實際問題的數(shù)學(xué)表述通常會導(dǎo)致求解特定的微分方程。將各種實際問題轉(zhuǎn)換為微分方程的定解問題主要包括以下幾個步驟: 確定研究

    2024年03月18日
    瀏覽(29)
  • 【數(shù)學(xué)建?!俊秾崙?zhàn)數(shù)學(xué)建模:例題與講解》第六講-假設(shè)檢驗(含Matlab代碼)

    【數(shù)學(xué)建模】《實戰(zhàn)數(shù)學(xué)建模:例題與講解》第六講-假設(shè)檢驗(含Matlab代碼)

    如果這篇文章對你有幫助,歡迎點贊與收藏~ 假設(shè)檢驗是一種統(tǒng)計決策過程,用于判斷樣本數(shù)據(jù)是否支持某個特定的假設(shè)。主要有兩類假設(shè): 零假設(shè)(Null Hypothesis):通常表示為沒有效應(yīng)或差異的假設(shè)。 備擇假設(shè)(Alternative Hypothesis):表示有效應(yīng)或差異的假設(shè)。 假設(shè)檢驗的

    2024年02月03日
    瀏覽(39)
  • 【數(shù)學(xué)建?!俊秾崙?zhàn)數(shù)學(xué)建模:例題與講解》第四講-插值與擬合(含Matlab代碼)

    【數(shù)學(xué)建模】《實戰(zhàn)數(shù)學(xué)建模:例題與講解》第四講-插值與擬合(含Matlab代碼)

    如果這篇文章對你有幫助,歡迎點贊與收藏~ 在實際問題中,對于給定的函數(shù) y = f(x) ,通常通過實驗觀測在某個區(qū)間 [a, b] 上一系列點 x_i 上的函數(shù)值 y_i = f(x_i) 得到。當(dāng)需要在這些觀測點 x_0, x_1, ..., x_n 之間的某些點 x 上估計函數(shù)值時,插值法和擬合是兩種常用的數(shù)學(xué)方法。

    2024年02月05日
    瀏覽(26)
  • 【數(shù)學(xué)建模】《實戰(zhàn)數(shù)學(xué)建模:例題與講解》第二講-線性規(guī)劃(含Matlab代碼)

    【數(shù)學(xué)建?!俊秾崙?zhàn)數(shù)學(xué)建模:例題與講解》第二講-線性規(guī)劃(含Matlab代碼)

    如果這篇文章對你有幫助,歡迎點贊與收藏~ 線性規(guī)劃(Linear Programming,LP)是一種在數(shù)學(xué)規(guī)劃領(lǐng)域中應(yīng)用廣泛的最優(yōu)化問題解決方法。其基本思想是在一系列約束條件下,通過建立線性數(shù)學(xué)模型來描述目標(biāo)函數(shù),以求得使目標(biāo)函數(shù)最大或最小的決策變量值。線性規(guī)劃在運籌學(xué)

    2024年02月04日
    瀏覽(28)
  • 【數(shù)學(xué)建?!俊秾崙?zhàn)數(shù)學(xué)建模:例題與講解》第七講-Bootstrap方法(含Matlab代碼)

    【數(shù)學(xué)建?!俊秾崙?zhàn)數(shù)學(xué)建模:例題與講解》第七講-Bootstrap方法(含Matlab代碼)

    如果這篇文章對你有幫助,歡迎點贊與收藏~ Bootstrap方法是一種統(tǒng)計技術(shù),用于估計一個樣本統(tǒng)計量的分布(例如均值、中位數(shù)或標(biāo)準(zhǔn)偏差)。它通過從原始數(shù)據(jù)集中重復(fù)抽取樣本(通常是帶替換的)來工作,允許評估統(tǒng)計量的變異性和不確定性。這種方法特別有用于小樣本

    2024年01月22日
    瀏覽(27)
  • 數(shù)學(xué)建?;A(chǔ)算法Chapter2.1 -- 整數(shù)規(guī)劃(ILP): 分支定界+割平面

    數(shù)學(xué)建模基礎(chǔ)算法Chapter2.1 -- 整數(shù)規(guī)劃(ILP): 分支定界+割平面

    By 進(jìn)棧需檢票 當(dāng)題目要求的最優(yōu)解是整數(shù),例如物件的數(shù)量,參與人員的數(shù)量等時,就不能繼續(xù)使用之前的線性規(guī)劃了(當(dāng)出現(xiàn)小數(shù)的情況),這個時候需考慮整數(shù)規(guī)劃這樣的一種建模形式 但是目前所流行的求整數(shù)規(guī)劃的方法,只適用于整數(shù)線性規(guī)劃,不能解決一切的整數(shù)

    2024年02月12日
    瀏覽(92)
  • 數(shù)學(xué)建模------MATLAB學(xué)習(xí)使用

    數(shù)學(xué)建模------MATLAB學(xué)習(xí)使用

    多項式就是使用行向量分別表示前面的系數(shù),這個需要按照一定的順序,而且為0的系數(shù)不能夠省略,按照從高到低的順序進(jìn)行表示; 我們接下來演示一下如何求多項式的根: 我們首先來認(rèn)識一下求多項式的根的函數(shù)roots 接下來我們哪一個最高次為5的多項式舉例: 這個方程

    2024年03月27日
    瀏覽(33)
  • 數(shù)學(xué)建?!猰atlab基本使用

    數(shù)學(xué)建?!猰atlab基本使用

    清除工作區(qū):clear。 清屏:clc。 圓周率表示:pi。 lnx代碼化:log(x)。 e^x代碼化:exp(x) x代表次數(shù)。 sin(x):sin(x);cos(x):cos(x);tan(x):tan(x)? arcsin(x):asin(x);arccos(x):acos(x);arctan(x):atan(x). .*與*的區(qū)別:.*代表進(jìn)行矩陣的數(shù)值運算 *代表進(jìn)行矩陣的運算。(matlab的基本操作對象是矩陣)。

    2024年02月07日
    瀏覽(24)
  • Matlab數(shù)學(xué)建模實驗題

    Matlab數(shù)學(xué)建模實驗題

    (1)用起泡法對10個數(shù)由小到大排序.即將相鄰兩個數(shù)比較,將小的調(diào)到前頭。 (2)有一個4×5矩陣,編程求出其最大值及其所處的位置. (3)編程求 (4)一球從100米高度自由落下,每次落地后反跳回原高度的一半,再落下.求它在第10次落地時,共經(jīng)過多少米?第10次反彈有多高? (

    2024年02月11日
    瀏覽(21)
  • 數(shù)學(xué)建模-MATLAB三維作圖

    數(shù)學(xué)建模-MATLAB三維作圖

    導(dǎo)出圖片用無壓縮tif會更清晰 幫助文檔:doc 函數(shù)名 新建實時腳本或右鍵文件轉(zhuǎn)換為實時腳本 實時編輯器-全部運行-內(nèi)嵌顯示 保存為PDF

    2024年02月15日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包