本文中,将会讲解Matlab
中关于文本和字符的创建。其中,文本指的是字符串数组中的文本;字符指的是字符数组中的数据。文本,可以理解为字符串数组,一个字符串在Matlab
中只占用一个元素位置,相当于一个字符串可以用一个1*1
矩阵表示,这种方法是R2017a
中引入的。字符指的是字符数组,字符在Matlab存放为一个数组,R2017a
之前的版本只能用这种方法。
而文本和字符的区别,一方面是引入方式不同,另一方面就是数据存放方式不同了。
更加详细的内容,相信可以在下面几个例子中发现。
字符串数组中的文本
当您处理文本时,将字符序列括在双引号中。可以将文本赋给变量。需要注意的是,如果你用的是Matlab R2017a
之前的版本,不支持双引号输入字符串,报错信息如下:
>> t = "Hello, world";
t = "Hello, world";
↑
错误: 输入字符不是 MATLAB 语句或表达式中的有效字符。
这种写法,会在Matlab R2017a
之后的版本引入。因此,关于字符串数组中的文本这部分内容,Matlab R2017a
之后的用户可以学习一下。之前的版本用户就不用参考了,可以看下一个版块的内容。
如果文本包含双引号,请在定义中使用两个双引号。
>> q = "Something ""quoted"" and something else."
q =
"Something "quoted" and something else."
与所有MATLAB®变量一样,t
和q
为数组。它们的类或数据类型是string
。
>> whos t
Name Size Bytes Class Attributes
t 1x1 174 string
使用双引号创建字符串数组是在
R2017a
中引入的。如果您使用的是更早期的版本,请创建字符数组。有关详细信息,请参阅下一个板块内容:字符数组中的数据。
要将文本添加到字符串的末尾,请使用加号运算符+
。
>> f = 71;
>> c = (f-32)/1.8;
>> tempText = "Temperature is " + c + "C"
tempText =
"Temperature is 21.6667C"
与数值数组类似,字符串数组可以有多个元素。使用strlength
函数求数组中每个字符串的长度。
>> A = ["a","bb","ccc"; "dddd","eeeeee","fffffff"]
A =
"a" "bb" "ccc"
"dddd" "eeeeee" "fffffff"
>> strlength(A)
ans =
1 2 3
4 6 7
字符数组中的数据
这部分是R2016a
中的主要使用方法。
有时,字符表示的数据并不对应到文本,例如DNA
序列。您可以将此类数据存储在数据类型为char
的字符数组中。字符数组使用单引号。
>> seq = 'GCTAGAATCC';
>> whos seq
Name Size Bytes Class Attributes
seq 1x10 20 char
数组的每个元素都包含单个字符。
>> seq(4)
ans =
A
使用方括号串联字符数组,就像串联数值数组一样。
>> seq2 = [seq 'ATTAGAAACC']
seq2 =
GCTAGAATCCATTAGAAACC
在字符串数组引入之前编写的程序中,字符数组很常见。接受string
数据的所有MATLAB
函数都能接受char
数据,反之亦然。
转载文章,原文出处:MathWorks官网,由古哥整理发布
如若转载,请注明出处:https://iymark.com/articles/2848.html