我正在使用循环创建我的单元格数组。它包含字符串“ A1”至“ A10”。 有没有不使用循环进行迭代的方法吗?
a = cell( 10, 1 );
for i = 1 : length( a )
a{i} = [ 'A', num2str( i ) ];
end
a =
'A1'
'A2'
'A3'
'A4'
'A5'
'A6'
'A7'
'A8'
'A9'
'A10'
答案 0 :(得分:3)
我假设您想构建 a
,而无需循环。按照您的示例,N = 10
。
a = sprintf('A%i ', 1:N);
a = a(1:end-1);
a = strsplit(a).';
这将在每个数字后建立一个带空格的char向量,删除最后的空格,在空格上分割并转置。
另一种方法:
a = deblank(cellstr(strcat('A', strjust(num2str((1:10).'), 'left'))));
这将'A'
与数字连接起来,形成带有一些空格的2D字符数组;将每行中的空格向右移动;将每一行转换为一个单元格;并删除每个单元格上的尾随空格。
答案 1 :(得分:3)
如果您具有R2017a或更高版本,请考虑使用字符串数组而不是char向量的单元格数组。您可以使用
创建字符串数组"A"+(1:10)'