




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Matlab中有15種基本數(shù)據(jù)類型,主要是整型、浮點、邏輯、字符、日期和時間、結(jié)構(gòu)數(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:下例是邏輯索引在矩陣操作中的應(yīng)用,將5*5矩陣中大于0.5的元素設(shè)定為0: A = rand(5); A(A>0.5)=0;4、字符:(char)Matlab中的輸入字符需使用單引號。字符串存儲為字符數(shù)組,每個元素占用一個A
3、SCII字符。如日期字符:DateString=9/16/2001 實際上是一個1行9列向量。構(gòu)成矩陣或向量的行字符串長度必須相同??梢允褂胏har函數(shù)構(gòu)建字符數(shù)組,使用strcat函數(shù)連接字符。例如,命令 name = 'abc' ; 'abcd' 將觸發(fā)錯誤警告,因為兩個字符串的長度不等,此時可以通過空字符湊齊如:name = 'abc ' ; 'abcd',更簡單的辦法是使用char函數(shù):char(abc,abcd),Matlab自動填充空字符以使長度相等,因此字符串矩陣的列緯總是等于最長字符串的字符數(shù).例如size(cha
4、r(abc,abcd)返回結(jié)果2,4,即字符串a(chǎn)bc實際存在的是abc ,此時如需提取矩陣中的某一字符元素,需要使用deblank函數(shù)移除空格如name =char(abc,abcd); deblank(name(1,:)。此外,Matlab同時提供一種更靈活的單元格數(shù)組方法,使用函數(shù)cellstr可以將字符串數(shù)組轉(zhuǎn)換為單元格數(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) 轉(zhuǎn)換小寫 upper(s) 轉(zhuǎn)換大寫 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ù)字轉(zhuǎn)換為字符串 datenum(str,f) 將字符串轉(zhuǎn)換為日期數(shù)字
8、; datevec(str) 日期字符串轉(zhuǎn)換向量 weekday(d) 計算星期數(shù) eomday(yr,mth) 計算指定月份最后一天 calendar(str) 返回日歷矩陣 clock 當前日期和時間的日期向量
9、date 當前日期字符串 now 當前日期和時間的序列數(shù)6、結(jié)構(gòu)結(jié)構(gòu)是包含已命名“數(shù)據(jù)容器”或字段的數(shù)組。結(jié)構(gòu)中的字段可以包含任何數(shù)據(jù)。7、構(gòu)建結(jié)構(gòu)數(shù)組(1)賦值方法下面的賦值命令產(chǎn)生一個名為patient的結(jié)構(gòu)數(shù)組,該數(shù)組包含三個字段: = 'John Doe'patient.billing = 127.00;patient.test = 79 75 73; 180 178 177.5; 220 210 205;在命令區(qū)內(nèi)輸入patient可以查看結(jié)構(gòu)信息:name: 'J
10、ohn Doe'billing: 127test: 3x3 double繼續(xù)賦值可擴展該結(jié)構(gòu)數(shù)組:patient(2).name = 'Ann Lane'patient(2).billing = 28.50;patient(2).test = 68 70 68; 118 118 119; 172 170 169;賦值后結(jié)構(gòu)數(shù)組變?yōu)? 2。(2)構(gòu)建結(jié)構(gòu)數(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)訪問結(jié)構(gòu)數(shù)據(jù)以下都是合法的結(jié)構(gòu)數(shù)組訪問命令:mypatients = patient(1:2) 獲取子結(jié)構(gòu)數(shù)據(jù)mypatients(1) 訪問結(jié)構(gòu)數(shù)據(jù)patient(2).name 訪問結(jié)構(gòu)數(shù)據(jù)中的特定字段patient(3).test(2,2) 訪問結(jié)構(gòu)數(shù)據(jù)中的特定字段(該字段為數(shù)組)bills = patient.billing 訪問多個結(jié)構(gòu)tests = patient(1:2).test 提取結(jié)構(gòu)數(shù)據(jù)轉(zhuǎn)換成單元格數(shù)組使用結(jié)構(gòu)字段的動態(tài)名稱通過structName.(expression_r_r_r)
13、可以賦予結(jié)構(gòu)字段名稱并訪問數(shù)據(jù)。例如字段名為expression_r_r_r、結(jié)構(gòu)名為structName,訪問其中第7行1至25列數(shù)據(jù)可以使用命令:structName.(expression_r_r_r)(7,1:25)。例如,存在一個學(xué)生每周成績數(shù)據(jù)結(jié)構(gòu)數(shù)組,其數(shù)據(jù)通過以下方式建立:即結(jié)構(gòu)名為testscores,字段使用每個學(xué)生的名稱命名,分別為wang和chen,每個學(xué)生下面包含名為week的成績結(jié)構(gòu)數(shù)組?,F(xiàn)計算給定結(jié)構(gòu)名稱、學(xué)生名稱和起止周數(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) 計算學(xué)生陳從第7周到第22周的平均分數(shù)。(4)添加和刪除結(jié)構(gòu)字段命令struct(index).(field)可添加或修改字段。如patient(2).ssn = '000-00-0000' 在結(jié)構(gòu)patient中添加一個名為ss
15、n的字段。刪除字段使用rmfield函數(shù),如patient2 = rmfield(patient, 'name') 刪除name字段并產(chǎn)生新的結(jié)構(gòu)。8、單元格數(shù)組:(cell)單元格數(shù)組提供了不同類型數(shù)據(jù)的存儲機制,可以儲存任意類型和任意緯度的數(shù)組。訪問單元格數(shù)組的規(guī)則和其他數(shù)組相同,區(qū)別在于需要使用花括號訪問,例如A2,5訪問單元格數(shù)組A中的第2行第5列單元格。(1)構(gòu)建單元格數(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即可,注意需使用花括號標識。簡化的方法是結(jié)合使用花括號(單元格數(shù)組)和方括號()創(chuàng)建,如C = 1 2, 3 4; 5 6, 7 8;(2)構(gòu)建單元格數(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ù)句柄是用于間接調(diào)用一個函數(shù)的Matlab值或數(shù)據(jù)類型。在調(diào)用其它函數(shù)時可以傳遞函數(shù)句柄,也可在數(shù)據(jù)結(jié)構(gòu)中保存函數(shù)句柄備用。通過命令形式 fhandle = functionname 可以創(chuàng)建函數(shù)句柄,例如 trigFun=sin,或匿名函數(shù)sqr = (x) x.2;。使用句柄調(diào)用函數(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ù)類型轉(zhuǎn)換如C語言中的強制類型轉(zhuǎn)換相似e.g.:y=9;z=double(y); Matlab中的圖像數(shù)據(jù)類型轉(zhuǎn)換MATLAB中讀入圖像的數(shù)據(jù)類型是uint8,而在矩陣中使用的數(shù)據(jù)類型是double因此 I2=im2double(I1) :把圖像數(shù)組I1轉(zhuǎn)換成double精度類型;如果不轉(zhuǎn)換,在對uint8進行加減時會產(chǎn)生溢出,可能提示的錯誤為:Function '*' is not defined for values of class '
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度船舶建造與設(shè)計合同年度更新
- 2025年度跨境電商代理記賬與稅務(wù)合規(guī)支持協(xié)議
- 2025年度人工智能技術(shù)研發(fā)合作協(xié)議(全新版)
- 2025年度創(chuàng)意產(chǎn)業(yè)園區(qū)租賃合同及創(chuàng)業(yè)支持協(xié)議
- 2025年度租賃合同范本(含違約責(zé)任)
- 持續(xù)反饋機制的建立與實施計劃
- 加強數(shù)據(jù)安全管理的實施措施計劃
- 2025年CO2氣體保護藥芯焊絲合作協(xié)議書
- 定期舉辦學(xué)術(shù)交流活動計劃
- 生產(chǎn)計劃科學(xué)制定
- 初中英語1600詞背誦版+檢測默寫版
- 《公共設(shè)施設(shè)計》課件
- 養(yǎng)老護理員安全培訓(xùn)
- 現(xiàn)代服務(wù)服務(wù)費合同范本
- 2024年云南省公務(wù)員錄用考試《行測》試題及答案解析
- 2024年度-工程造價培訓(xùn)課件全新
- 中國急性缺血性卒中診治指南(2023版)
- 高中學(xué)校工會工作制度
- 人教版八年級上冊數(shù)學(xué)期末考試試卷含答案
- 2024至2030年全球與中國市場頭戴式耳機深度研究報告
- 學(xué)前教育普及普惠質(zhì)量評估幼兒園準備工作詳解
評論
0/150
提交評論