matlab字符串连接(多个字符串)的经验 |
您所在的位置:网站首页 › 怎么把不同的监控器链接起来 › matlab字符串连接(多个字符串)的经验 |
参考 matlab中字符串连接的3种方法 文章,实验遇到的一些小白问题,如有问题希望大神们给予指导。 Matlab中,两个或多个字符串连接常用的三种方法,如下: 背景知识: 1、char 和 string 区别 从定义的角度来说,单引号‘ ’定义的为char类型,双引号“ ”定义的为string类型。 2、字符串数组(char)和字符串(string)区别 字符串数组就相当于数据类型为char的矩阵或向量,用单引号创建,可以索引。 string相当于一个类,用string()函数创建实例对象,所以有一些函数可以对string进行操作。
方法一:[str1,str2] 字符串数组(char类型)的连接 假设两个char类型 str1 = 'save '; str2 = '.mat uData'; >> [str1,str2] ans = 'save .mat uData'假设两个char类型和一个string类型 str1 = 'save '; str2 = '.mat uData'; str3 = "000"; >> [str1,str3,str2] ans = 1×3 string 数组 "save " "000" ".mat uData";输出的结果变成string数组,因此可知string优先级高于char的优先级。 如果考虑利用char()函数对结果进行处理会如何? >> char([str1,str3,str2]) 1×10×3 char 数组 ans(:,:,1) = 'save ' ans(:,:,2) = '123 ' ans(:,:,3) = '.mat uData'得到一个三维的char类型的矩阵(不知为何有三维,第二、三维分别表示最长字符串的长度10和所要拼接的字符串的数3量)。 因此,[str1,str2,...]的方法是将非char类型的数据转换成char的类型,然后再使用该方法则可以得到char类型的输出结果。 >> [str1, char(str3), str2] ans = 'save 000.mat uData'方法二:strcat函数 实质上,strcat函数的方法是在string数据类型进行字符拼接,然后将最后的结果转换成类型char的字符串。 下面介绍该方法的一个问题: str1 = 'save '; %请注意后面的空格 str2 = '.mat uData'; str3 = "000"; >> char(strcat(str1, str3, str2)) ans = 'save000.mat uData' %请注意后面的空格已丢失分析后,发现在strcat中会出现该情况,可能是在连接过程中会将空格删除掉,如果是string类型,则不会丢失,如下方法1. >> char(strcat("save ", str3, str2)) 或者 >> char(strcat('save'," ", str3, str2)) ans = 'save 000.mat uData'上述两种方法输出正常。值得注意的是,方法2,空格需要采用双引号,这是因为strcat函数在连接字符串主要注意空格的转义方面的知识(现在不太了解,望见谅) 方法三:sprintf函数 >> sprintf('%s%s%s', str1, str3, str2) ans = 'save 000.mat uData'该方法至今没有发现问题。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |