matlab數(shù)據(jù)類型及轉換_第1頁
matlab數(shù)據(jù)類型及轉換_第2頁
matlab數(shù)據(jù)類型及轉換_第3頁
matlab數(shù)據(jù)類型及轉換_第4頁
matlab數(shù)據(jù)類型及轉換_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Matlab中有15種基本數(shù)據(jù)類型,主要是整型、浮點、邏輯、字符、日期和時間、結構數(shù)組、單元格數(shù)組以及函數(shù)句柄等。     1、整型:(int8;uint8;int16;uint16;int32;uint32;int64;uint64)通過intmax(class)和intmin(class) 函數(shù)返回該類整型的最大值和最小值,例如intmax(int8)=127;     2、浮點:(single;double)浮點數(shù):REALMAX('double')和REALMAX('single')分

2、別返回雙精度浮點和單精度浮點的最大值,REALMIN('double')和REALMIN ('single')分別返回雙精度浮點和單精度浮點的最小值。3、邏輯:(logical)Logical:下例是邏輯索引在矩陣操作中的應用,將5*5矩陣中大于0.5的元素設定為0:       A = rand(5);       A(A>0.5)=0;4、字符:(char)Matlab中的輸入字符需使用單引號。字符串存儲為字符數(shù)組,每個元素占用一個A

3、SCII字符。如日期字符:DateString=9/16/2001 實際上是一個1行9列向量。構成矩陣或向量的行字符串長度必須相同??梢允褂胏har函數(shù)構建字符數(shù)組,使用strcat函數(shù)連接字符。例如,命令 name = 'abc' ; 'abcd' 將觸發(fā)錯誤警告,因為兩個字符串的長度不等,此時可以通過空字符湊齊如:name = 'abc ' ; 'abcd',更簡單的辦法是使用char函數(shù):char(abc,abcd),Matlab自動填充空字符以使長度相等,因此字符串矩陣的列緯總是等于最長字符串的字符數(shù).例如size(cha

4、r(abc,abcd)返回結果2,4,即字符串abc實際存在的是abc ,此時如需提取矩陣中的某一字符元素,需要使用deblank函數(shù)移除空格如name =char(abc,abcd); deblank(name(1,:)。此外,Matlab同時提供一種更靈活的單元格數(shù)組方法,使用函數(shù)cellstr可以將字符串數(shù)組轉換為單元格數(shù)組:data= char(abc,abcd)       length(data(1,:) ->? 4       cdata=cellstr(

5、data)       length(cdata1) ->?3常用的字符操作函數(shù)blanks(n) 返回n個空字符       deblank(s) 移除字符串尾部包含的空字符       (string) 將字符串作為命令執(zhí)行       findstr(s1,s2) 搜索字符串      

6、 ischar(s) 判斷是否字符串        isletter(s) 判斷是否字母       lower(s) 轉換小寫       upper(s) 轉換大寫       strcmp(s1,s2) 比較字符串是否相同       strncmp(s1,s2,n) 比較字符串中的

7、前n個字符是否相同       strrep(s1,s2,s3) 將s1中的字符s2替換為s35、日期和時間Matlab提供三種日期格式:日期字符串如1996-10-02,日期序列數(shù)如729300(0000年1月1日為1)以及日期向量如 1996 10 2 0 0 0,依次為年月日時分秒。常用的日期操作函數(shù)datestr(d,f) 將日期數(shù)字轉換為字符串       datenum(str,f) 將字符串轉換為日期數(shù)字     

8、;  datevec(str) 日期字符串轉換向量       weekday(d) 計算星期數(shù)       eomday(yr,mth) 計算指定月份最后一天       calendar(str) 返回日歷矩陣        clock 當前日期和時間的日期向量      

9、date 當前日期字符串       now 當前日期和時間的序列數(shù)6、結構結構是包含已命名“數(shù)據(jù)容器”或字段的數(shù)組。結構中的字段可以包含任何數(shù)據(jù)。7、構建結構數(shù)組(1)賦值方法下面的賦值命令產生一個名為patient的結構數(shù)組,該數(shù)組包含三個字段: = 'John Doe'patient.billing = 127.00;patient.test = 79 75 73; 180 178 177.5; 220 210 205;在命令區(qū)內輸入patient可以查看結構信息:name: 'J

10、ohn Doe'billing: 127test: 3x3 double繼續(xù)賦值可擴展該結構數(shù)組:patient(2).name = 'Ann Lane'patient(2).billing = 28.50;patient(2).test = 68 70 68; 118 118 119; 172 170 169;賦值后結構數(shù)組變?yōu)? 2。(2)構建結構數(shù)組:struct函數(shù) 函數(shù)基本形式為:strArray = struct('field1',val1,'field2',val2, .)例如:weather(1) = struct(

11、9;temp', 72,'rainfall', 0.0);weather(2) = struct('temp', 71,'rainfall', 0.1);        weather = repmat(struct('temp', 72, 'rainfall', 0.0), 1, 3);       weather = struct('temp', 68, 80

12、, 72, 'rainfall', 0.2, 0.4, 0.0);(3)訪問結構數(shù)據(jù)以下都是合法的結構數(shù)組訪問命令:mypatients = patient(1:2) 獲取子結構數(shù)據(jù)mypatients(1) 訪問結構數(shù)據(jù)patient(2).name 訪問結構數(shù)據(jù)中的特定字段patient(3).test(2,2) 訪問結構數(shù)據(jù)中的特定字段(該字段為數(shù)組)bills = patient.billing 訪問多個結構tests = patient(1:2).test 提取結構數(shù)據(jù)轉換成單元格數(shù)組使用結構字段的動態(tài)名稱通過structName.(expression_r_r_r)

13、可以賦予結構字段名稱并訪問數(shù)據(jù)。例如字段名為expression_r_r_r、結構名為structName,訪問其中第7行1至25列數(shù)據(jù)可以使用命令:structName.(expression_r_r_r)(7,1:25)。例如,存在一個學生每周成績數(shù)據(jù)結構數(shù)組,其數(shù)據(jù)通過以下方式建立:即結構名為testscores,字段使用每個學生的名稱命名,分別為wang和chen,每個學生下面包含名為week的成績結構數(shù)組?,F(xiàn)計算給定結構名稱、學生名稱和起止周數(shù)的平均分數(shù)。在命令窗口中輸入 edit avgscore.m,輸入以下代碼后保存文件:function avg = avgscore(stru

14、ct,student, first, last)       avg = sum(struct.(student).week(first:last)/(last - first + 1);在命名窗口中輸入:avgscore(testscores, 'chen', 7, 22) 計算學生陳從第7周到第22周的平均分數(shù)。(4)添加和刪除結構字段命令struct(index).(field)可添加或修改字段。如patient(2).ssn = '000-00-0000' 在結構patient中添加一個名為ss

15、n的字段。刪除字段使用rmfield函數(shù),如patient2 = rmfield(patient, 'name') 刪除name字段并產生新的結構。8、單元格數(shù)組:(cell)單元格數(shù)組提供了不同類型數(shù)據(jù)的存儲機制,可以儲存任意類型和任意緯度的數(shù)組。訪問單元格數(shù)組的規(guī)則和其他數(shù)組相同,區(qū)別在于需要使用花括號訪問,例如A2,5訪問單元格數(shù)組A中的第2行第5列單元格。(1)構建單元格數(shù)組:賦值方法使用花括號標識可直接創(chuàng)建單元格數(shù)組,如:A(1,1) = 1 4 3; 0 5 8; 7 2 9;       A(1,2) =

16、 'abcd'       A(2,1) = 3+7i;        A(2,2) = -pi:pi/10:pi;上述命令創(chuàng)建2*2的單元格數(shù)組A。繼續(xù)添加單元格元素直接使用賦值如A(2,3)=5即可,注意需使用花括號標識。簡化的方法是結合使用花括號(單元格數(shù)組)和方括號()創(chuàng)建,如C = 1 2, 3 4; 5 6, 7 8;(2)構建單元格數(shù)組:函數(shù)方法Cell函數(shù)。如:B = cell(2, 3);B(1,3) = 1:3;(3)訪問數(shù)據(jù)通過

17、索引可直接訪問單元格數(shù)組中的數(shù)據(jù)元素,例如:N1,1 = 1 2; 4 5;N1,2 = 'Name'N2,1 = 2-4i;N2,2 = 7;c = N1,2d = N1,1(2,2)9、函數(shù)句柄函數(shù)句柄是用于間接調用一個函數(shù)的Matlab值或數(shù)據(jù)類型。在調用其它函數(shù)時可以傳遞函數(shù)句柄,也可在數(shù)據(jù)結構中保存函數(shù)句柄備用。通過命令形式 fhandle = functionname 可以創(chuàng)建函數(shù)句柄,例如 trigFun=sin,或匿名函數(shù)sqr = (x) x.2;。使用句柄調用函數(shù)的形式是 fhandle(arg1, arg2, ., argn) 或 fhandle()(無參

18、數(shù))。如:trigFun(1)。例:function x = plotFHandle(fhandle, data)plot(data, fhandle(data)plotFHandle(sin, -pi:0.01:pi)數(shù)據(jù)類型轉換如C語言中的強制類型轉換相似e.g.:y=9;z=double(y);   Matlab中的圖像數(shù)據(jù)類型轉換MATLAB中讀入圖像的數(shù)據(jù)類型是uint8,而在矩陣中使用的數(shù)據(jù)類型是double因此 I2=im2double(I1) :把圖像數(shù)組I1轉換成double精度類型;如果不轉換,在對uint8進行加減時會產生溢出,可能提示的錯誤為:Function '*' is not defined for values of class '

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論