Matlab掃盲17:字符型數(shù)組、創(chuàng)建、判斷和索引方法,集合運(yùn)算、與數(shù)值型轉(zhuǎn)換方法、運(yùn)算
1.概念
字符型(Characters)數(shù)據(jù)一般用來存儲(chǔ)和處理文本數(shù)據(jù),字符數(shù)組是一個(gè)字符序列,字符向量把字符存儲(chǔ)為1乘n的向量,是常用形式,在Matlab中有兩種表示文本的方法:字符型和字符串型,本文先介紹字符型數(shù)組的創(chuàng)建、連接、轉(zhuǎn)換和運(yùn)算等內(nèi)容;
2.創(chuàng)建、判斷和索引
創(chuàng)建字符型數(shù)組使用一對(duì)單引號(hào) '',判斷一個(gè)變量是否為字符型數(shù)據(jù)使用函數(shù)ischar,字符數(shù)組的索引方法與數(shù)值型數(shù)組的索引方法用法相同,數(shù)值型數(shù)組的索引方法看文章6Matlab矩陣索引、下標(biāo)索引、線性索引、邏輯索引、冒號(hào)end索引、超出索引報(bào)錯(cuò)
程序示例:
a='123'? %創(chuàng)建字符數(shù)組
b='freexyn'
c='自由未知數(shù)'
size(c)? %查看行列數(shù)
ischar(a)? %判斷是否為字符型
'I''m fine'? %字符數(shù)組內(nèi)有單引號(hào)時(shí),使用雙引號(hào)表達(dá)
c(1:3)? %索引字符向量的元素
c(6)='.' ?%通過索引改變字符向量的元素
3.字符數(shù)組的連接
多個(gè)字符數(shù)組連接的方法與數(shù)值型數(shù)組連接的方法一致,具體看文章7Matlab掃盲7:矩陣元素的合并、連接、提取、翻轉(zhuǎn)、排序、平鋪復(fù)制、提取對(duì)角線元素,另外,也可以使用函數(shù),水平連接使用strcat函數(shù),豎直連接使用strvcat函數(shù);
程序示例:
b='freexyn'
c='自由未知數(shù)'
[b,c] ?%字符連接:中括號(hào)水平連接
strcat(b,c)? %水平連接函數(shù)
strvcat(b,c)? %垂直連接函數(shù):列數(shù)不同時(shí)會(huì)自動(dòng)補(bǔ)齊空格
4.字符數(shù)組的集合運(yùn)算
集合運(yùn)算就是計(jì)算交集、并集等,求交集使用函數(shù)intersect,求并集使用函數(shù)union
程序示例:
a='123'? %字符向量
b='1245'
union(a,b)? %并集
intersect(a,b)? %交集
5.字符型與數(shù)值型的轉(zhuǎn)換方法
基于Unicode編碼,進(jìn)行字符和數(shù)值之間相互轉(zhuǎn)換使用函數(shù)char和double,基于字符字面義不變,進(jìn)行字符和數(shù)值之間相互轉(zhuǎn)換使用函數(shù)num2str和str2num
程序示例:
char(100)? %雙精度100轉(zhuǎn)化為字符型為d
char([97 98 99 100]) ?%轉(zhuǎn)化1行4列數(shù)值型。返回結(jié)果a b c d
double('a')? %把字符a轉(zhuǎn)化為數(shù)值型為97
num2str(100)? %把數(shù)值100轉(zhuǎn)換成字符‘100’
str2num('100')? %把字符'100'轉(zhuǎn)換成數(shù)值100
r=80
disp(['計(jì)算得出半徑r:',num2str(r)])? %結(jié)果:計(jì)算得出半徑r:80
6.字符型數(shù)組的運(yùn)算
a='d'
b='100'? %1行3列字符向量:1 0 0
a+a? %字符自動(dòng)轉(zhuǎn)成數(shù)值再運(yùn)算,返回200
a+b? %返回149 148 148
char(49)? %返回字符'1'
str2num('100')+str2num('100') %返回200



End