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 將小寫字母轉換成大寫...