天天看點

matlab數值資料和變量名

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個字元。

matlab數值資料和變量名

TIP:

(1)變量名區分字母的大小寫。 

(2)标準函數名以及指令名一般用小寫字母。

如何給變量指派呢?

指派語句兩種格式:

(1)變量=表達式 

(2)表達式   //指派給matlab的預定義變量ans

如果在指派語句的最後加分号,則僅僅執行指派操作,不會顯示執行運算結果。

例子:

matlab數值資料和變量名

>> 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指令  顯示在工作空間中已經駐留的變量名清單

matlab數值資料和變量名

(2)記憶體變量檔案

用于儲存MATLAB工作區變量的檔案叫做記憶體變量檔案,其擴充名為.mat

,也叫MAT檔案。

  save指令:建立記憶體變量檔案。

  load指令:裝入記憶體變量檔案。

>> save mydata a x    //将變量a和x儲存在mydata檔案中

>> load mydata