如何用更简洁的MATLAB代码生成带前缀+序列索引的char类型元胞数组
MATLAB生成前缀加序列索引元胞数组的优雅实现
你想要生成类似{'a1','a2','a3','a4','a5'}的带固定前缀的序列元胞数组,除了你现有的写法,还有以下几种更简短优雅的实现思路:
- R2016b及以上版本首选:
compose函数
一行代码直接输出目标结果,可读性最高:
这个函数会自动按指定格式将数值序列转为字符串元胞数组,不需要额外设置输出参数。compose('a%d', 1:5) - 兼容旧版本方案1:
cellstr+num2str
如果你用的Matlab版本没有compose函数,可以用这个写法,兼容性很强:
先把数值序列转成列向量,用指定格式转字符数组后直接转元胞,不需要用到匿名函数。cellstr(num2str((1:5)', 'a%d')) - 兼容旧版本方案2:
sprintf+strsplit
也可以借助批量格式化的sprintf搭配字符串拆分实现:
末尾加strsplit(sprintf('a%d ', 1:5))(1:end-1)(1:end-1)是为了去掉最后拆分出来的空元素。
内容的提问来源于stack exchange,提问作者ThomasIsCoding
相关产品推荐
相关产品推荐

