ASCII和UNICODE编码
首先我们介绍字符的概念.字符是文本的最基本单元,在英文语境中,它包括字母、数
字、标点符号、空格、换行符等,它们是构成单词、句子和段落的基础;在中文语境中,每
个汉字同样也被视为一个字符.实际上,我们在生活中读到的文本都是由各种字符组成的.
存储在计算机中的所有数据都是以二进制的形式表示的,由字符组成的文本数据也是一
样.将字符转换成相应的二进制数,这个过程称为对字符编码.为了使不同的计算机能够准
确无误地交换文本数据,它们必须使用相同的编码规则.为此,我们这一节将介绍两种最广为使用的编码标准:ASCII和UNICODE编码
ASCII编码表是一开始的为表示字符而创造的,可显示的有20-126,其他还有不可显示的控制字符。
控制字符不用于显示文本,它们用于控制如打印机、网络设备等外围设备的行为
ASCII编码表的前0-127位被UNICODE所兼容
尽管UNICODE编码为各种字符提供了一个唯一的编码,但它并没有指定这些编码应该如
何存储在计算机中.目前最常用的存储格式有三种:UTF-8、UTF-16和UTF-32。UTF是
Unicode转换格式的缩写,直译就是unicode的转换格式,后面的8、16和32分
别代表存储每种字符编码所需的最少的比特位数.关于这一块的知识点比较复杂,感兴趣的
同学可以自行查阅相关资料.大家只需要知道:matlab保存字符选用的是UTF-16格式
字符数组
double可以获取字符的unicode编码(十进位)
用if语句可以把大写字符和小写字符互换
字符向量
创建类似于普通向量的创建
列向量
也可以用[ : ]连续创建,底层是±ascii的数字
repmat和repelem
一个是复制成13的矩阵,另一个是每一个元素重复成13的矩阵
拼接向量
horzcat是水平拼接
cat(dim,A,B)输入1是列项拼接,2是水平拼接
翻转
也可以用indx(索引)[end👎1]来控制翻转
计算字符向量中字符的数量
这里用repmat把b2复制成一个2*9的char矩阵
‘123456789’在实际中是‘1’,’2‘,’3‘…的形式
numel是总字符
size是矩阵格式,如果是向量就固定是1*n
length是最大行向量的元素个数
比较两个字符
两种方法,一个是按照索引比较每一个字符
第二是总体比较
也可以用strcmpi进行不区分大小写的比较(不常用)
也能用all比较
字符矩阵
在上面的repmat中了解了字符矩阵
创建过程‘123456789’在实际中是‘1’,’2‘,’3‘…的形式要严格对齐,一个char只能存一个元素
newline是char(10)是换行符