matlab里cell和char,字符串与字符数组
2015-07-09 09:59
375 查看
转载自:http://blog.sina.com.cn/s/blog_6a388c8f01015n04.html
用importdata和textscan读取内容为字符串的txt,结果为cell型元胞组。
我想把cell变成char型,然后就自然地想到cell2str,遗憾的是matlab中没有这个函数。
就像没有str2cell一样。
实现str2cell功能的函数是cellstr,将字符数组转换为cell型字符串数组
函数语法为c = cellstr(S)
它的作用是:将字符数组S中的每行分割成为cell细胞元组C的一个元素。并删除S的每行尾部空格
正好与char相反,char是将cell字符串数组转化为字符数组s=char(c)
很多人分不开字符数组和字符串什么区别。
>>str1='i love matlab' % 这是一个字符数组,也是一个字符串
str1 =
i love matlab
>>str2=['I ';'am ';'a ';'boy'];% 这是字符数组,由于是数组,所以每一行必须具有相同的列数(字符数相同),不够补空格
str2 =
I
am
a
boy
由于字符数组必须满足每一行具有相同的字符数,所以输入时很麻烦。通常情况我们使用char函数来完成自动补充空格或者创建字符串cell细胞元组。
>>char('i','love','matlab') % char函数会自动补充空格
ans =
i
love
matlab
>>{'i','love','matlab'} % 在cell字符串中,每个单元都可以完全不同的内容,所以,不需要补充空格。
ans =
'i' 'love' 'matlab'
下面来看几个例子:
例1:创建一个字符串数组,记住补空格
>>S= ['abc '; 'defg'; 'hi '] (下划线代表空格)
S =
abc
defg
hi
>>whos S
Name Size Bytes Class
S 3x4 24 char array
例2:下面使用cellstr将字符数组,转换为3*1的cell细胞元组,此时尾部空格会自动删除 :
>>c = cellstr(S)
c =
'abc'
'defg'
'hi'
>>whos c
Name Size Bytes Class
c 3x1 294 cell array
例3:再使用char函数将cell字符串转换为字符数组
>>char(c)
ans =
abc
defg
hi
>> whos ans
Name Size Bytes Class Attributes
ans 3x4 24 char
用importdata和textscan读取内容为字符串的txt,结果为cell型元胞组。
我想把cell变成char型,然后就自然地想到cell2str,遗憾的是matlab中没有这个函数。
就像没有str2cell一样。
实现str2cell功能的函数是cellstr,将字符数组转换为cell型字符串数组
函数语法为c = cellstr(S)
它的作用是:将字符数组S中的每行分割成为cell细胞元组C的一个元素。并删除S的每行尾部空格
正好与char相反,char是将cell字符串数组转化为字符数组s=char(c)
很多人分不开字符数组和字符串什么区别。
>>str1='i love matlab' % 这是一个字符数组,也是一个字符串
str1 =
i love matlab
>>str2=['I ';'am ';'a ';'boy'];% 这是字符数组,由于是数组,所以每一行必须具有相同的列数(字符数相同),不够补空格
str2 =
I
am
a
boy
由于字符数组必须满足每一行具有相同的字符数,所以输入时很麻烦。通常情况我们使用char函数来完成自动补充空格或者创建字符串cell细胞元组。
>>char('i','love','matlab') % char函数会自动补充空格
ans =
i
love
matlab
>>{'i','love','matlab'} % 在cell字符串中,每个单元都可以完全不同的内容,所以,不需要补充空格。
ans =
'i' 'love' 'matlab'
下面来看几个例子:
例1:创建一个字符串数组,记住补空格
>>S= ['abc '; 'defg'; 'hi '] (下划线代表空格)
S =
abc
defg
hi
>>whos S
Name Size Bytes Class
S 3x4 24 char array
例2:下面使用cellstr将字符数组,转换为3*1的cell细胞元组,此时尾部空格会自动删除 :
>>c = cellstr(S)
c =
'abc'
'defg'
'hi'
>>whos c
Name Size Bytes Class
c 3x1 294 cell array
例3:再使用char函数将cell字符串转换为字符数组
>>char(c)
ans =
abc
defg
hi
>> whos ans
Name Size Bytes Class Attributes
ans 3x4 24 char
相关文章推荐
- MATLAB函数大全
- Visual Studio中调用matlab生成的dll
- matlab的cell数组
- 数字信号处理公式变程序(五)——仿matlab的spectrogram函数(STFT)
- Matlab应用实例(8)—fminimax
- 读取siftgeo格式文件的matlab程序
- matlab中元胞数组(cell)转换为矩阵
- MATLAB学习笔记(十一)
- Matlab:显示time信号的频谱
- Matlab提供的两种聚类分析方法
- MATLAB中的结构数组
- matlab中meshgrid函数
- MATLAB学习笔记(十)
- Matalb并行:parfor
- Matlab undo axis tight axis image
- 支持向量机(SVM)算法的matlab的实现
- Matlab如何创建多个Legend(图例)
- Eigen与Matlab语法及语义辞典
- Matlab移植到Eigen用到的词条
- Matlab绘图技巧