1.2MATLAB數值資料
l 數值資料類型的分類
l 數值資料的輸出格式
l 常用數學函數内部函數
1.數值資料類型的分類
l 整型
l 浮點型
l 複數型
(1)整型
1.數值資料類型的分類
無符号整數:無符号8位整數、無符号16位整數、無符号32位整數、
無符号64位整數。 (按配置設定位元組數)
帶符号整數:帶符号8位整數、帶符号16位整數、帶符号32位整數、
帶符号64位整數。
無符号8位整數資料範圍:00000000~11111111(0~2^8-1)。
帶符号8位整數資料範圍:10000000~01111111(-2^7~2^7-1)。(最左邊為符号位,0表示正數,1表示負數)
Matlab提供資料類型轉換函數來實作資料類型的轉換。例如uint8函數将數值資料轉換為無符号8位整數,int8函數将數值資料轉換為有符号8位整數
>> x=int8(129) //帶符号8位整型資料的最大值是127
x = 127
>> x=uint8(129) //無符号最大為255
x = 129
(2)浮點型
分為單精度型型和雙精度類型,單精度型實數在記憶體中占用4個位元組,雙精度型實數在記憶體中占用8個位元組。雙精度型資料進度更高。MATLAB中預設為雙精度型。
single函數:将其他類型的資料轉換為單精度型。
double函數:将其他類型的資料轉換為雙精度型。
>> class(4) //調用class函數,得到資料類型
ans = double
>> class(single(4))
ans = single
>> class(double(4))
ans = double
(3)複型
複型資料包括實部和虛部兩個部分,實部和虛部預設為雙精度型,虛數機關用i或j來表示。
real函數:求複數的實部
imag函數:求複數的虛部
>> 6+5i
ans = 6.0000 + 5.0000i
>> 6+5j
ans = 6.0000 + 5.0000j //表示同一個複數
2.資料的輸出格式
可以采用日常計數法和科學技術法兩種方法。
日常計數法:3.14159、-9.359i、3+5i
科學技術法:用字母小寫e或大寫E表示以10為底的指數。1.78029e2、6.732E2i(純虛數)、
format指令的格式:
format 格式符 //格式符決定了輸出格式
>> format long
>> 50/3
ans = 16.666666666666668 15位
>> format
>> 50/3
ans = 16.6667 4位
TIP:注意:format指令隻影響資料輸出格式 ,而不影響資料的計算和存儲。
3.常用數學函數
(1)函數的調用格式為:
函數名(函數自變量的值)
函數的自變量規定為矩陣變量,當然也可以是标量,标量本身是矩陣的一種特例。
函數在運算時是将函數逐項作用于矩陣的每個元素上,是以最後運算的結果就是一個與自變量同型的矩陣。
>> A=[4,2;3,6]
A = 4 2
3 6
>> B=exp(A) //調用exp函數求自然指數 自變量為A指派給B
B = 54.5982 7.3891
20.0855 403.4288
TIP:MATLAB中和數學中自然對數表示不一樣。數學中ln表示。
(2)常用函數的應用
① 三角函數有以弧度為機關的函數和以角度為機關的函數,如果是以角度為機關的函數就在函數名後面加“d”,以示差別。
>> sin(pi/2)
ans = 1
>> sind(90)
ans = 1
② abs函數可以求實數的絕對值、複數的模、字元串的ASCII碼值。
>> abs(-4)
ans = 4
>> abs(3+4i)
ans = 5
>> abs(\'a\')
ans = 97
③用于取整的函數有fix、floor、ceil、round。
>> round(4.7)
ans = 5
>> fix(-3.2)
ans = -3
>> floor(3.6)
ans = 3
>> ceil(-3.8)
ans = -3
round函數是按照四舍五入的規則來取整。
ceil是向上取整,取大于等于這個數的第一個整數。
floor是向下取整,取小于等于這個數的第一個整數。
fix是固定取靠近0的那個整數,也就是舍去小數取整。
④函數應用舉例。
例1:分别求一個三位正整數的個位數字、十位數字和百位數字。
數學上:三位正整數處于10的餘數為該數的個位數字。除以10 取整後就去掉了這個數的個位數字,得到的數在除以10 取餘數,餘數就是新得到的數的個位數字,也就原來數字的十位數字。正整數除以100取整後就去掉了這個數的個位和十位數字,得到百位數字。
>> m=345; //建立變量m,并指派
>> m1=rem(m,10) //調用rem函數,求餘數并指派
m1 = 5
>> m2=rem(fix(m/10),10) //先調用fix函數取整,在調用rem函數求餘數
m2 = 4
>> m3=fix(m/100)
m3 = 3
例2:求[1,100]區間的所有素數。
一般程式利用循環結構實作。MATLAB提供了一個判斷n是否素數的函數isprime(n),當n是素數時,傳回1,否則傳回0。
>> x=1:100; //生成1-100全部整數組成的向量x
>> k=isprime(x); //調用isprime函數 結果為1/0
>> k1=find(k); //調用find函數生成k1向量 k1為k非0元素的序号,x的素數序号
>> p=x(k1) //輸出全部素數
p =
1 至 13 列
2 3 5 7 11 13 17 19 23 29 31 37 41
14 至 25 列
43 47 53 59 61 67 71 73 79 83 89 97
1.3變量及其操作
計算機所處理的資料都是存放在記憶體單元中的,每個記憶體單元都有個唯一的位址。程式通過位址來通路記憶體單元。
進階語言中,是通過名字通路記憶體單元的。取了名的記憶體單元就叫變量。
1.變量與指派語句
在MATLAB中,變量名是以字母開頭,後接字母、數字或下畫線的字元序列, 最多63個字元。

TIP:
(1)變量名區分字母的大小寫。
(2)标準函數名以及指令名一般用小寫字母。
如何給變量指派呢?
指派語句兩種格式:
(1)變量=表達式
(2)表達式 //指派給matlab的預定義變量ans
如果在指派語句的最後加分号,則僅僅執行指派操作,不會顯示執行運算結果。
例子:
>> x=sqrt(7)-2i; //調用了求平方根函數
>> y=exp(pi/2); //調用了自然指數函數exp 不可以寫成乘方的形式
>> z=(5+cosd(47))/(1+abs(x-y))
Z = 1.4395
2.預定義變量
預定義變量是在MATLAB工作空間中駐留,由系統本身定義的變量。
ans是預設指派變量
i和j代表虛數機關
pi代表圓周率
NaN代表非數(重要)
使用的時候避免對預定義變量重新指派。
3.變量的管理
(1)記憶體變量的删除與修改
在工作區中修改。右擊,選擇對應指令。
who指令與whos指令 顯示在工作空間中已經駐留的變量名清單
(2)記憶體變量檔案
用于儲存MATLAB工作區變量的檔案叫做記憶體變量檔案,其擴充名為.mat
,也叫MAT檔案。
save指令:建立記憶體變量檔案。
load指令:裝入記憶體變量檔案。
>> save mydata a x //将變量a和x儲存在mydata檔案中
>> load mydata