Matlab数学建模工具
Matlab數學建模工具
調整界面字體大小
在最初的界面,所有的字體偏小。看起來不是很明確,可以調整互交區域或者編輯區域的字體大小。
具體位置如下。
- 新建一個空的腳本
- 主頁
- 預設
- 字體
- 調整數值(通常來說,十八太大,我們使用十四號字體即可)
- 字體
- 預設
- 主頁
注釋
在matlab種,注釋通常使用 % 來表示
% 我是一行注釋,我是單行注釋,在我后面的一行字符,統統不算數什么是互交命令行
在我們的matlab中,存在一個窗口界面,也就是互交命令行。他的作用很大,通常來說。沒有很多行測試腳本的情況下,我們直接使用互交命令行即可,在你敲出第一個代碼/指令的時候,他就會立馬給你一個回饋。
互交命令行窗口
互交命令行發出一行指令后,立馬回饋的信息
如果我們感覺互交命令行太亂,即可在指令處輸入這一個指令,來清除所有的文本文字。
clc呢么對應的效果就是如下
空空如也。
我剛剛有提及過工作區的變量,如果工作區變量不需要,或者過多,想要刪除部分變量或者刪除全部的變量。也是有對應的操作。
% 刪除指定的變量, 假設此時我們擁有變量a,和變量b clear a% 刪除全部的變量 clear all什么是編輯腳本區域(編輯器)
我們如果有很多行代碼,來運行一個很大的數值運算(二分查找,冒泡排序,優先選擇法等等)一些算法排序。我們肯定不能依靠單一的一行互交來完成任務。呢么我們就存在了一個功能,Script (腳本). 還記得我跟你講過的Java嗎。面向過程編程。由上到下去執行得到最終的結果值。是的,他也是這樣的理念。在一個以 .m 結尾的文件里,來書寫代碼,最后執行得到最終的結果值。
呢么如果我們想要去編輯腳本,就需要先創建腳本,于是乎
如何去創建一個腳本
創建腳本有兩種方式,就目前編輯器里最直觀的方式來看。
第一種是直接點擊新建腳本。但是有幾點是需要注意的.
我們會直接得到一個如圖所示的 Untitled,在這個時候就可以開始橋寫你的代碼了,如圖。
好,但是或許你留意到了文件名字后面的 * 號。這是什么意思,其實他的意思很簡單,不光是這個 * 號,包括你以后在所有代碼里遇到文件頭部帶有 *的,都表示了一個意義,呢就是 文件已經發生變動,但是該文件并沒有保存。 我們只需要按住 Ctrl + s 鍵 進行保存即可。所有的文件保存基本上全是這一個操作。在我們按住ctrl + s鍵保存后,會彈出一個要保存在哪里的提示。
此時我們可以在bin目錄下新建文件夾,然后保存到里面即可,文件名稱可以進行更改,在下方藍色處位置。
數據類型
他也是擁有數據類型的,就跟任何一個語言一樣。呢么他的數據類型分為以下幾種。
- 數字
- 字符與字符串
- 矩陣
- 元胞數組
- 結構體
數字
數字這個概念其實很好理解,也就是我們所用到的所有和 “數” 有關的東西。 浮點數,整數。呢么對應的操作,肯定是離不開最基本的四則運算。也就是我們所說的 + - * / (加減乘除)
他們也是很好理解的。
% 加法 10 + 20 20 + 30 a = 50; b = 100; a + b;% 減法 20 - 10 10 - 20 a = 10; b = 5; a - b;% 乘法 10 * 2 20 * 1 a = 9; b = 3; a * b;% 除法 20 / 2 30 / 3 a = 9; b = 3; a / b;字符與字符串
字符是不是對應char類型啊?單個字符存在。我也不是很理解。我剛看文檔一小會。
java
Char c = new Char('a');matlab
a = 'a'用最通俗易懂的話來說,字符串就是 Java 的String類的使用而已。此處str為變量。
String str = "我是一個字符串";matlab也是這樣的。只不過沒有這個類的定義,符號使用單引號。
str = '我是一個字符串,Hello,World!';當然了,我去測試了一下,雙引號也是可以儲存的,但是他們的區別好像是,使用單引號存儲的變量,和雙引號存儲的變量不一樣在 包括他們的符號和你書寫時使用的單雙引號一致。
str = '我是一個字符串。'; 存儲結果 ----> '我是一個字符串'str2 = "我是一個字符串"; 存儲結果 ----> "我是一個字符串"對應圖解應該更好理解一些
使用它們輸出也是這樣的一個區別,暫時先放置。等我了解后在回補。
好了,經過我的一些測試,我發現了一些端倪。
如果我們學過Java,是否還記得,字符對應的數字編碼。 ASCII 碼。 a對應的數字,是否是97. 沒錯吧,呢么是什么類型才會有這種情況呢,字符類型。 也就是說上面我們猜對了,他就是和Java的char類型一樣。甚至可以進行運算。
ASCII編碼
為了證實,我收集了ASCII編碼集
Char("32") 空格 SPACE Char("33") ! Char("34") " Char("35") # Char("36") $ Char("37") % Char("38") & Char("39") ’ Char("40") ( Char("41") ) Char("42") * Char("43") + Char("44") , Char("45") - Char("46") . Char("47") / Char("48") 0 Char("49") 1 Char("50") 2 Char("51") 3 Char("52") 4 Char("53") 5 Char("54") 6 Char("55") 7 Char("56") 8 Char("57") 9 Char("58") : Char("59") ; Char("60") < Char("61") = Char("62") > Char("63") ? Char("64") @ Char("65") A Char("66") B Char("67") C Char("68") D Char("69") E Char("70") F Char("71") G Char("72") H Char("73") I Char("74") J Char("75") K Char("76") L Char("77") M Char("78") N Char("79") O Char("80") P Char("81") Q Char("82") R Char("83") S Char("84") T Char("85") U Char("86") V Char("87") W Char("88") X Char("89") Y Char("90") Z Char("91") [ Char("92") \ Char("92") \ Char("93") ] Char("94") ^ Char("95") _ Char("96") ` Char("97") a Char("98") b Char("99") c Char("100") d Char("101") e Char("102") f Char("103") g Char("104") h Char("105") i Char("106") j Char("107") k Char("108") l Char("109") m Char("110") n Char("111") o Char("112") p Char("113") q Char("114") r Char("115") s Char("116") t Char("117") u Char("118") v Char("119") w Char("120") x Char("121") y Char("122") z Char("123") { Char("124") | Char("125") } Char("126") ~ Char("127") Char("128") € Char("129") ? Char("130") ? Char("131") ? Char("132") ? Char("133") …于是我使用了 在單引號內加入多個字符字母
str = 'aasssa'; abs(str); 最終結果 -> ans-> 97 97 115 115 115 97已經到這一步了,呢么不妨做一個大膽的猜想。是否是在單引號內,所有包裹起來的數據都是屬于字符類型的。全部可以轉換為對應的 ASCII字符編碼。
呢么上面有說過,我們也可以使用雙引號包裹,呢么是否雙引號包裹起來的,才是字符串呢?(理論上來說字符串就是一堆char類型拼接成的數組而已。). 實踐永遠是證實的標準。
于是我們使用了第三組數據。
很驚訝,它并不能轉換為對應是ASCII編碼。呢么基本上也就坐實了,使用單引號包裹起來的,就是我們的字符類型,但是他跟我們學過的Java的char類型不一樣,它可以在一個引號內包裹多個字符,但是Java只允許一個包裹一個。
使用雙引號包裹起來的,也就是我們所了解的字符串。對應Java的String類型。 字符和字符串還是有很大區別的。可以根據按需使用。
通常使用單引號,有的參數需要使用雙引號的時候在考慮使用。
abs()函數
于是在這里,我們先暫定做一個小猜想,錯了在改就是。abs() 函數,呢么他的作用是什么,就是把對應的字符,轉換為對應的計算機編碼(ASCII) 的數值。
char()函數
呢么上面提到過。我們可以把字符轉換為數字,呢么我們是否可以把對應ASCII編碼的數字轉換為字符呢?也是可以的,就是我們的標題,char函數。
用法也是很簡單,只需要把字符對應的ASCII編碼輸入進去,就可以轉換為對應的字符。
num2str()函數
他的作用也很簡單,其實是做了一個互相轉化,把數字,轉換為字符類型。
但是需要注意的是,雖然變量a被轉換為字符類型,但是實際上存儲的依然是,數字類型,這個我們可以在方法區或者直接調用變量 a 來得到證實。
str2num() 函數
通過這個函數,可以把字符包裹的數字,轉換為,真實的數字。如
str = '20'; a = str2num(str);--> 20 --> a = 20length()函數
這個函數也很好理解,返回對應字符的長度,單位是字符。
注意,返回的是字符字符串的長度,也就是使用單引號包裹的字符。才可以完全返回。而使用雙引號包裹的,是屬于一個整體。(測試所得,可能有誤。 我剛剛接觸,不理解。只能猜測。)
因為使用雙引號包裹是有特殊意義的存在,有的函數參數要加單引號,有的要加雙引號是因為:
不能使用數組將字符串與“”連接起來。
s1="12",s2="34",s3="45"s1 ="12"s2 ="34"s3 ="45">> str=[s1,s2,s3]str =1×3 string 數組"12" "34" "45">> s1='12',s2='34',s3='45' s1 ='12's2 ='34's3 ='45'>> [s1,s2,s3]ans ='123445'矩陣
所有的東西都可以歸結于矩陣的一個運算。矩陣是很強的,也是我們這個軟件的運算核心。比如神經網絡啊,無人駕駛啊等等。
矩陣的定義
如何去定義一個矩陣。
% 最簡單的一個矩陣 a = [1, 2, 3; 4, 5, 6; 7, 8, 9]; a = [1 2 3; 4 5 6; 7 8 9]; % 我們會得到一個結果 a =1 2 34 5 67 8 9我們可以看到,上面列舉了兩種矩陣的方式,數組。但是在數組里面,有什么規律。
第一種 [1, 2, 3; 4, 5, 6; 7, 8, 9]
我們可以看見。每一行的結尾,都會有一個 ; 結尾,中間連接是使用 , 來連接。這是一個三維矩陣。
第二種 [1 2 3; 4 5 6; 7 8 9]
結尾依然是 ; 分號結尾,但是連接點變成了空格,根據個人喜好來使用即可。
兩種方式都可以。
矩陣的轉置 a(T)
在數學中,矩陣轉置的表現方式是 t。 也就是轉置的首字母縮寫。Transpose;
呃。等一下。我去給你寫一個去。字不好,湊合看。幾個月沒握筆了。
呢么在我們在我們的矩陣中,如何完成一個矩陣的轉置呢。其實也是很簡單的!
% 進行矩陣轉置。 a = [1 2 3; 4 5 6; 7 8 9; 9 6 3] %結果為: a =1 2 34 5 67 8 99 6 3% 開始轉換 b = a'% 結果為 b =1 4 7 92 5 8 63 6 9 3于是我們把上面的結果使用圖像的形式來展示,可能會更容易看懂一點。畢竟有圖,誰愿意看一堆垃圾數據呢。
不難發現,我們把a 賦值給了b,原本這個操作是沒有問題的。但是問題在哪里呀。我們加上了一個單引號。而這個單引號,所做到的操作是什么,就是 矩陣轉置! 由原來的 橫向矩陣,轉換為了縱向矩陣。 也就是相當于。
[1, 2, 3; 4, 5, 6; 7, 8, 9]T
這樣的一個表達形式。
矩陣向量? 我數學知識不行,不大行,猜測
首先我們寫一個基礎矩陣。
a = [1, 2, 3; 4, 5, 6; 7, 8, 9]; % 得到如下結果 a =1 2 34 5 67 8 98 5 2呢么我們如何把他變成一個向量。
a = [1, 2, 3; 4, 5, 6; 7, 8, 9];b = a(:);可以看到,我們的矩陣變由 4 * 3 double 變成了 12 * 1 double。
我只是猜測啊。我只是猜測。只是猜測啊!不確定是向量。 呢么矩陣向量的加減乘除。其實也很好理解。
我的文化知識不夠,對不起大哥們。
好了。先不管,先看看運行結果和規律。
呢么可以看到我們的運行結果為。
>> a = [1, 2, 3; 4, 5, 6; 7, 8, 9; 8, 5, 2]a =1 2 34 5 67 8 98 5 2>> b = a(:)b =147825853692把他拉扯成向量,可以發現什么。 他并不是橫向拉扯,而是做一個縱向的拉扯,從第一列第一個,也就是 A(ij) ,A1,1
到A2,1 到A3,1 然后是A4,1 第一行拉完之后,就是第二行,A2,2 以此類推。
總結
以上是生活随笔為你收集整理的Matlab数学建模工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Eclipse 汉化包
- 下一篇: [css] css中的border:n