EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
用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) 很多人分不开字符数组和字符串什么区别。) `7 ~9 Z' @) S7 L5 t2 z5 V
>>str1='i love matlab' % 这是一个字符数组,也是一个字符串
. o# l. @+ ^& R! Q% `( dstr1 =0 A. F) c0 q+ A
i love matlab
8 d2 Z" a0 @: |! F3 P
" J% O' J# ]8 D9 F" ~1 C5 b>>str2=['I ';'am ';'a ';'boy'];% 这是字符数组,由于是数组,所以每一行必须具有相同的列数(字符数相同),不够补空格
3 _# U3 J( Q2 z: ^( v/ Estr2 =, }- a; j) ]% Z, E( X, i7 O8 s! \
I/ Q4 n- Q0 T' N. s/ s7 N
am
0 B8 G) j( _+ f. e8 Qa
5 f' Y0 m) M+ m5 N# mboy
) V$ r, b- ]9 Q k- q% j3 M" g. q- O% c6 ^) R
由于字符数组必须满足每一行具有相同的字符数,所以输入时很麻烦。通常情况我们使用char函数来完成自动补充空格或者创建字符串cell细胞元组。. w) j; P f# F. a1 j5 B0 ~$ O
>>char('i','love','matlab') % char函数会自动补充空格8 p* z) P, Q) ?8 v. G3 K$ w b
ans =9 j* D- d3 S2 ? `. ^
i
5 E1 {2 h3 N/ ]; \love9 e" F: `. @" X, K+ m
matlab. ^- H9 J1 `% p
5 r0 w4 I+ h$ i, g+ {) v>>{'i','love','matlab'} % 在cell字符串中,每个单元都可以完全不同的内容,所以,不需要补充空格。* J* R6 m( {* M6 P8 Y0 z! _/ w( N
ans =
: A$ o/ V+ k3 `; I% Z' x. Y* j/ C6 o'i' 'love' 'matlab' 8 e- \0 f9 v3 L
下面来看几个例子: 例1:创建一个字符串数组,记住补空格' U _4 x1 V( i
>>S= ['abc '; 'defg'; 'hi '] (下划线代表空格)
: T; O4 ?; j* B! JS =
& {& p) T( d$ Y% u2 R* k# }abc
7 P2 z/ F. w* Fdefg/ H& j3 A* ?( \4 x( ^3 I+ r) S
hi
5 M5 k% O% c ~ ?7 [) p3 g" h$ R2 L. e( g
>>whos S
) ^9 o' u' }4 `/ [Name Size Bytes Class% g/ d6 x, T: M: h6 A
S 3x4 24 char array
2 L6 j- D/ V" w- ~1 W$ C- c: g1 f( [, b2 g1 b1 ]: K7 v3 K8 U
例2:下面使用cellstr将字符数组,转换为3*1的cell细胞元组,此时尾部空格会自动删除 :
# I5 a7 |& H0 r( i$ Q>>c = cellstr(S)+ ?$ i- } d" ^
c =0 ]' T# V1 x/ d7 v1 C) d
'abc'
( Y# g5 U& J- c' b1 E'defg'$ A# z1 U1 r6 n4 c- o+ c
'hi'$ i) z3 J, ]* z9 Q& R
! z3 w7 L, L. H) `>>whos c
1 M, Y8 B+ O# P9 R( N! D" qName Size Bytes Class
. Z2 w9 Z) P0 tc 3x1 294 cell array) }- r6 |& Y5 }& z. ?5 ~4 d, ~( H3 Z
" U. h2 q9 F: _9 n5 W" |0 O例3:再使用char函数将cell字符串转换为字符数组7 R4 P9 b$ O, v3 M! }5 ~
>>char(c)
- g2 p0 ^( i: i/ X( Ians =9 k% g' `7 f! X3 t- M" _
abc. N( F. N0 N! F
defg
8 r/ J& {' b* o) Z2 I. a0 yhi/ L) T/ z% X- H2 {8 f4 H
4 k9 g# X1 s, [8 ?( R& a8 x>> whos ans
; M+ V0 V2 a K$ u, w# @- HName Size Bytes Class Attributes
. _: `& B5 Z" S& O. s+ Lans 3x4 24 cha
8 Z, c' O# W4 b# u5 K |