首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将数字数组转换为字符的单元格数组,并在一行中与chars连接。

将数字数组转换为字符的单元格数组,并在一行中与chars连接。
EN

Stack Overflow用户
提问于 2019-05-15 12:36:51
回答 3查看 257关注 0票数 0

如何将数字数组转换为字符的单元格数组,并在一行中与字符连接?

示例

我有一个数字数组:

代码语言:javascript
运行
复制
[1, 5, 12, 17]

我想将它转换成一个由字符组成的单元格数组,并将其与字符“传感器”连接起来,并获得:

代码语言:javascript
运行
复制
{'Sensor 1', 'Sensor 5', 'Sensor 12', 'Sensor 17'}

有没有办法在一条线上做到这一点?

我现在得到的

代码语言:javascript
运行
复制
nums = [1, 5, 12, 17];

cellfun(@(x) ['Sensor ' num2str(x)], num2cell(nums), 'UniformOutput', 0)

有没有一种更简单或更紧凑的方法?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-05-15 13:00:20

您可以使用sprintf()arrayfun()使其变得更整洁,但不确定这会为您节省很多:

代码语言:javascript
运行
复制
nums = [1, 5, 12, 17];

arrayfun(@(x) {sprintf('Sensor %d',x)}, nums) % Gives a cell array of char array strings

arrayfun(@(x) sprintf("Sensor %d",x), nums)   % Gives an array of string strings (version 2016b onwards)

从2016年a开始,你也可以在MATLAB的版本中使用compose()

代码语言:javascript
运行
复制
compose('Sensor %d', nums)  % Char array

compose("Sensor %d", nums)  % String array (version 2017a onwards)
票数 1
EN

Stack Overflow用户

发布于 2019-05-15 14:12:26

使用字符串的简单替代方法:

代码语言:javascript
运行
复制
>> nums = [1, 5, 12, 17];
>> cellstr("Sensor " + nums) 

ans =

  1×4 cell array

    {'Sensor 1'}    {'Sensor 5'}    {'Sensor 12'}    {'Sensor 17'}

字符串需要MATLAB R2017a

票数 1
EN

Stack Overflow用户

发布于 2019-07-08 07:12:56

另一个只使用“在R2006a之前引入”函数的选项是:

代码语言:javascript
运行
复制
A = [1, 5, 12, 17];
B = strcat('Sensor', {' '}, strtrim(cellstr(int2str(A.'))) );

这会产生一个列向量,因此您应该根据需要进行转置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56149522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档