MATLAB中字串和其他資料型別

2022-10-16 10:15:03 字數 4815 閱讀 7491

matlab中有15種基本資料型別:主要是整型、浮點、邏輯、字元、日期和時間、結構陣列、單元格陣列以及函式控制代碼等。

1、整型:(int8;uint8;int16;uint16;int32;uint32;int64;uint64)通過intmax(class)和intmin(class)函式返回該類整型的最大值和最小值,例如

>> intmax('int8')

ans =

127>> intmin('int8')

ans =

-128

注意:加上單引號

2、浮點型:(single;double)

浮點數:realmax(class)和realmin(class)分別返回雙精度浮點數和單精度浮點數的最大、最小值,例如:

realmax('double')

ans =

1.797693134862316e+308

>> realmin('double')

ans =

2.225073858507201e-308

3、邏輯型:(logical)

logical:下例是邏輯索引在矩陣操作中的應用,將5*5矩陣中大於0.5的元素設定為0:

>> a=rand(5)

a = 0.814723686393179 0.097540404999410 0.

157613081677548 0.141886338627215 0.655740699156587

0.905791937075619 0.278498218867048 0.

970592781760616 0.421761282626275 0.035711678574190

0.126986816293506 0.546881519204984 0.

957166948242946 0.915735525189067 0.849129305868777

0.913375856139019 0.957506835434298 0.

485375648722841 0.792207329559554 0.933993247757551

0.632359246225410 0.964888535199277 0.

800280468888800 0.959492426392903 0.678735154857773

>> a(a>0.5)=0

a = 0 0.097540404999410 0.157613081677548 0.141886338627215 0

0 0.278498218867048 0 0.421761282626275 0.035711678574190

0.126986816293506 0 0 0 0

0 0 0.485375648722841 0 0

0 0 0 0 0

4、字元(串)型:(char)

matlab中的輸入字元需使用單引號。字串儲存為字元陣列,每個元素占用乙個ascii字元。如日期字元:

datestring=』9/16/2001』實際上是乙個1行9列向量。構成矩陣或向量的行字串長度必須相同。可以使用char函式構建字元陣列,使用strcat函式連線字元。

例如,命令 name = ['abc' ; 'de']將觸發錯誤警告,

>> name=['abc';'defg']

??? error using ==> vertcat

cat arguments dimensions are not consistent.

因為兩個字串的長度不等,此時可以通過空字元湊齊。如改成:name =['abc ';'defg'],

>> name=['abc ';'defg']

name =

abcdefg

更簡單的辦法是使用char函式:name=char(『abc』,'defg』),matlab自動填充空字元以使長度相等,因此字串矩陣的列緯總是等於最長字串的字元數。

>> name=char('abc','defg')

name =

abcdefg

例如size(char(『abc』,'abcd』))返回結果[2,4],即字串'abc』實際存在的是'abc ',

此時如需提取矩陣中的某一字元元素,需要使用deblank函式移除空格,例如:

>> name =char('abc','defg');

name1=name(1,:)

name2=deblank(name(1,:))

length(name1)

length(name2)

name1 =

abcname2 =

abcans =

4ans =

3此外,matlab同時提供一種更靈活的單元格陣列方法,使用函式cellstr可以將字串陣列轉換為單元格陣列:

>> name =char('abc','defg')

length(name(1,:))

names=cellstr(name)

length(names) %names中含有兩個單元,求第乙個單元的長度

name =

abcdefg

ans =

4names =

'abc'

'defg'

ans =

3常用的字元操作函式有:

blanks(n)返回n個空字元,例如:

>> a=blanks(2)

a = >> whos a

name size bytes class attributes

a 1x2 4 char

deblank(s) 移除字串尾部包含的空字元,例如:

>> s='fsd fsf '

s =fsd fsf

>> deblank(s)

ans =

fsd fsf

>> length(s)

ans =

10>> length(deblank(s))

ans =

8 (string) 將字串作為命令執行

findstr(s1,s2) 搜尋字串,看字串s2在s1字串中是否存在,若存在,返回第乙個字元的位置,例如:

>> s='fsd fsf '

s =fsd fsf

>> findstr(s,'fsd')

ans =

1>> findstr(s,'fsf')

ans =

6>> findstr(s,'fsf ')

ans =

6>> findstr(s,'dsf ')

ans =

ischar(s) 判斷是否字串,若是則返回1,不是返回0,例如:

>> ischar(s)

ans =

1 isletter(s) 判斷各個字元是否為字母,若是,對應位返回1,否則為0,例如:

>> s='a12 23 de34 '

s =a12 23 de34

>> isletter(s)

ans =

1 0 0 0 0 0 0 1 1 0 0 0 0

lower(s) 將字串中的大寫字母轉換成小寫字母

upper(s) 將字串中的小寫字母轉換成大寫字母

strcmp(s1,s2) 比較字串是否相同,若相同返回1,否則返回0

strncmp(s1,s2,n) 比較字串中的前n個字元是否相同,若相同返回1,否則返回0

strrep(s1,s2,s3) 將s1中的字元s2替換為s3

double(str)或abs(str) 將字串中的每個字元轉換成ascii碼形式,例如:

>> str='fs'

str =

fs>> double(str)

ans =

102 115

>> abs(str)

ans =

102 115

char(num) 將ascii轉換為字元

>> char(97)

ans =

a>> char(97,98)

ans =ab

str2num(str) 將字串轉換為數字

num2str(n) 將數字轉換為字串

>> a=3;

b=num2str(a)

b =3

可以看到工作空間中a是變數,而b是字元

eval函式:eval(str) 將str當成一條命令執行),例如:

>> eval('a=5')

a = 5

5、日期和時間

matlab提供三種日期格式:日期字串如』1996-10-02』,日期序列數如729300(2023年1月1日為1)以及日期向量如 1996 10 2 0 0 0,依次為年月日時分秒。

常用的日期操作函式

datestr(d)將日期數字和日期向量轉化為日期字串

>> datestr('1991 7 23')

ans =

23-jul-1991

>> datestr(733646.5)

ans =

26-aug-2008 12:00:00

>> datestr(now)

ans =

30-mar-2012 21:39:57

datenum(str) 將日期字串和日期向量轉化為日期數字

>> datenum('26-aug-2008 12:00:00')

ans =

7.336465000000000e+005

datevec(str) 將日期數字和日期字串轉化為日期向量

>> datevec('1991 3 23')

ans =

1991 3 23 0 0 0

>> datevec(733646.5)

C語言陣列和字串

實驗10 陣列和字串 實驗目的 1 理解一維陣列和二維陣列在記憶體中的存放形式。2 掌握一維陣列和二維陣列變數的定義和陣列元素的引用。3 掌握字串庫函式的用法。4 掌握字串和字元陣列的區別。實驗準備 1 一維陣列的定義。定義形式如下 儲存型別符資料型別符陣列變數名 整形常量表示式 如 int a 1...

如何獲取資料庫的鏈結字串

剛做程式開發的人,常常為如何連線資料庫,怎麼寫連線字串而困惑。做產品安裝的服務人員,也常常為如何快速測試本機與資料庫的連線狀況而頭疼。這裡,給出乙個簡單快速的實現方法 udl檔案。第一步 建立 資料鏈結 檔案。右鍵選 新建 建立任意型別的檔案,如文字檔案,在命名時修改擴充套件名為udl,例如 提示 ...

C語言 字串函式大全和詳解

atof 將字串轉換成浮點型數 atoi 將字串轉換成整型數 atol 將字串轉換成長整型數 strtod 將字串轉換成浮點數 strtol 將字串轉換成長整型數 strtoul 將字串轉換成無符號長整型數 toascii 將整型數轉換成合法的ascii 碼字元 toupper 將小寫字母轉換成大寫...