當前位置:成語大全網 - 書法字典 - Matlab數據類型

Matlab數據類型

Matlab中有15種基本數據類型,主要有整數、浮點、邏輯、字符、日期和時間、結構數組、單元格數組和函數句柄。Matlab主要數據類型的結構圖如下:

1.整數

Integer:通過int max(class)和int min(class)函數返回該類型整數的最大值和最小值,例如int max(‘int 8‘)= 127。

2.浮點

浮點數:REALMAX(‘double‘)和REALMAX(‘single‘)分別返回雙精度浮點和單精度浮點的最大值,而REALMIN(‘double‘)和REALMIN(‘single‘)分別返回雙精度浮點和單精度浮點的最小值。

3.邏輯

邏輯:以下示例是邏輯索引在矩陣運算中的應用,5*5矩陣中大於0.5的元素設置為0:

A =蘭特(5);

A(A & gt;0.5)=0

4.特性

在Matlab中輸入字符需要使用單引號。字符串存儲為字符數組,每個元素占用壹個ASCII字符。例如,日期字符:datestring =‘9/16/2001‘實際上是壹個具有1行和9列的向量。組成矩陣或向量的行字符串必須具有相同的長度。可以使用char函數構建字符數組,使用strcat函數連接字符。

例如,命令name =,即字符串“abc”實際上以“abc”的形式存在。此時,如果要提取矩陣中的某個字符元素,則需要使用去塊函數去除name = char(‘ABC‘,ABCD)等空格;去塊(name(1,))。此外,Matlab還提供了壹種更靈活的單元格數組方法,可以使用cellstr函數將字符串數組轉換為單元格數組:

data = char(‘ABC’,‘ABCD’)

長度(data(1,:)-》;?四

CDATA = cellstr(data)

長度(CDATA { 1 })-& gt;?三

常用的字符操作功能

blanks(n)返回n個空字符。

去模糊刪除字符串末尾包含的空字符。

eval(string)將字符串作為命令執行。

findstr(s 1,s2)搜索字符串

is char(s)判斷它是否為字符串。

Isletter判斷它是否是壹個字母。

小寫轉換小寫。

轉換大寫。

strcmp(s 1,s2)比較字符串是否相同。

strncmp(s 1,s2,n)比較字符串中的前n個字符是否相同。

strrep(s1,s2,s3)用s3替換s 1中的s2。

5.日期和時間

Matlab提供了三種日期格式:日期字符串,如“1996-10-02”,日期序列號,如729300(000年的65438+10月的1)和日期向量,如1996 10。

常用日期操作函數

datestr(d,f)將日期數字轉換為字符串。

datenum(str,f)將字符串轉換為日期數字。

datevec(str)日期字符串轉換向量

weekday(d)計算周數

eomday(yr,mth)計算指定月份的最後壹天。

calendar(str)返回日歷矩陣。

時鐘當前日期和時間的日期向量。

日期當前日期字符串

現在是當前日期和時間的序列號。

6.結構

結構是包含命名數據容器或字段的數組。結構中的字段可以包含任何數據,例如:

建築結構陣列:指定方法

以下賦值命令生成壹個名為patient的結構化數組,其中包含三個字段:

patient . name =‘John Doe‘;

patient . billing = 127.00;

patient . test =【79 75 73;180 178 177.5;220 210 205];

在命令區輸入patient以查看結構信息:

姓名:“約翰·多伊”

付費電話:127

測試:【3x3 double】

繼續賦值以展開結構數組:

病人(2)。name =‘安·萊恩‘;

病人(2)。計費= 28.50;

病人(2)。test =【68 70 68;118 118 119;172 170 169];

賦值後,結構數組變為【1 ^ 2】。

建築結構數組:結構函數

函數的基本形式是:strang ray = struct(‘field 1‘,val 1,‘field 2‘,val 2,...)

例如:

weather(1)= struct(‘temp‘,72,‘rain‘,0.0);weather(2)= struct(‘temp‘,71,‘rain‘,0.1);

weather = repmat(struct(‘temp‘,72,‘rain‘,0.0),1,3);

weather = struct(‘temp‘,{68,80,72},‘rain‘,{0.2,0.4,0.0 });

訪問結構數據

以下是所有合法的結構數組訪問命令:

my patients = patient(1:2)獲取子結構數據。

my patients(1)訪問結構數據。

病人(2)。name訪問結構數據中的特定字段。

病人(3)。test(2,2)訪問結構數據中的特定字段(這是壹個數組)。

bills =【patient . billing】訪問多個結構。

測試次數= {患者(1: 2)。測試}提取結構數據並將其轉換為單元格數組。

使用結構字段的動態名稱

通過structName。(表達式),您可以給出結構化字段名並訪問數據。例如,字段名為expression,結構名為structName。要訪問第7行和1到25行中的數據,可以使用命令:struct name。(表情)(7,1: 25)。

例如,有壹個學生每周成績的數據結構數組,其數據通過以下方式建立:

test scores . Wang . week(1:25)...

[95 89 76 82 79 92 94 92 89 81 75 93 ...

85 84 83 86 85 90 82 82 84 79 96 88 98];

test scores . Chen . week(1:25)...

[87 80 91 84 99 87 93 87 97 87 82 89 ...

86 82 90 98 75 79 92 84 90 93 84 78 81];

也就是說,該結構稱為testscores,字段以每個學生的名字命名,即王和陳。每個學生都包含壹個名為week的等級結構數組。

現在計算給定結構名稱、學生姓名和起止周的平均分。

在命令窗口中輸入edit avgscore.m,輸入以下代碼並保存文件:

函數avg = avgscore(結構,學生,名字,姓氏)

avg = sum(struct。(學生)。week(first:last))/(last-first+1);

在命名窗口中輸入:avg score(考試分數,‘Chen‘,7,22)以計算學生Chen從第7周到第22周的平均分數。

添加和刪除結構字段

命令【結構】(索引)。(字段)可以添加或修改字段。例如,患者(2)。ssn =‘000-00-0000‘將名為SSN的字段添加到結構patient中。

使用rmfield函數刪除字段,例如patient 2 = RM field(patient,‘name‘)刪除姓名字段並生成壹個新結構。

單元陣列

單元陣列為不同類型的數據提供了壹種存儲機制,可以存儲任何類型和範圍的陣列。

訪問單元格數組的規則與訪問其他數組的規則相同,只是訪問時需要花括號{}。例如,A{2,5}訪問單元格數組A的第2行第5列中的單元格。

構建單元陣列:分配方法

您可以使用大括號直接創建單元格數組,例如:

a(1,1)= {【1 4 3;0 5 8;7 2 9]};

a(1,2)= {‘ABCD‘};

a(2,1)= { 3+7i };

a(2,2)= {-pi:pi/10:pi };

上述命令創建壹個2*2的單元格數組A .繼續添加單元格元素並直接使用賦值,例如A(2,3)= { 5 }。請註意,需要花括號進行標識。簡化的方法是將大括號(單元格數組)和方括號()組合在壹起,如C = {【1 2】,【3 4】;[5 6], [7 8]};

構建單元格數組:函數方法

細胞功能。比如:

B =單元格(2,3);

b(1,3)= { 1:3 };

存取數據

單元格數組中的數據元素可以通過索引直接訪問,例如:

N{1,1 } =【1 2;4 5];

N{1,2 } =‘Name‘;

N{2,1 } = 2-4 I;

N{2,2 } = 7;

c = N{1,2}

d = N{1,1 }(2.2)

功能句柄

函數句柄是用於間接調用函數的Matlab值或數據類型。您可以在調用其他函數時傳遞函數句柄,也可以將函數句柄保存在數據結構中供以後使用。您可以通過命令形式fhandle = @functionname創建函數句柄,例如,trigFun=@sin或匿名函數sqr = @(x)x.^2;。

用句柄調用函數的形式是fhandle(arg 1,arg2,...,argn)或fhandle()(無參數)。比如:

trigFun(1)。示例:

函數x = plot fhandle(fhandle,data)

plot(data,fhandle(data))

plot handle(@ sin,-pi:0.01:pi)