matlab - 用数字字符串快速填充元胞数组

标签 matlab

我想构建一个字符串元胞数组:{'x_1', 'x_2', ..., 'x_n'}。我提前知道 n 是什么。天真地,我可能会按如下方式构建此元胞数组:

for i = 1:n
    myCell{i} = sprintf('x_%d', i);
end

是否有更优雅的方式来做到这一点,即单行代码?

最佳答案

您的代码比提供的一些答案快三倍:

%
n = 1000;
tic
myCell = cell(1,n);
for i = 1:n
    myCell{i} = sprintf('x_%d', i);
end
toc

tic
aCell = arrayfun(@(x){sprintf('x_%d',x)},1:n);
toc

tic
bCell = strcat('x_',cellstr(num2str((1:n)')));
toc

tic
cCell = strcat('x_',strtrim(cellstr(num2str((1:n)'))));
toc



>> Elapsed time is 0.011541 seconds.
>> Elapsed time is 0.030992 seconds.
>> Elapsed time is 0.027931 seconds.
>> Elapsed time is 0.030453 seconds.

关于matlab - 用数字字符串快速填充元胞数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8581419/

相关文章:

matlab - 立方体的边坐标

c - Matlab R2007b 未解析的外部与引擎实用程序

matlab - 我如何在 Matlab 中标记两个向量?

matlab - 在 MATLAB 中对 HSV 颜色空间建模

matlab - 在 MATLAB 中使用 ginput 函数时放大/缩小

matlab - 如何在Matlab中使用PCA查看哪个属性(特征)对分类性能贡献最大?

matlab - 在 MATLAB 中设计窄带通滤波器

matlab - 在matlab中从对角线重建矩阵

arrays - Matlab中清空结构体数组的所有字段

matlab - 当两个结构具有相同的字段时,如何逐个元素地添加、减去等