MATLAB无环串单元阵列
我正在使用一个循环来创建我的单元格数组。它包含字符串“A1”到“A10”。 有没有一种不使用循环的迭代方法MATLAB无环串单元阵列,matlab,cell,Matlab,Cell,我正在使用一个循环来创建我的单元格数组。它包含字符串“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' 我假设您想要构建一个没有循环的a。
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'
我假设您想要构建一个没有循环的a
。让N=10
符合您的示例
方法1
这将构建一个字符向量,每个数字后面都有一个空格,删除最后的空格,在空格上拆分,并进行转置
方法2
另一种方法:
a = deblank(cellstr(strcat('A', strjust(num2str((1:10).'), 'left'))));
这将'A'
与数字连接起来,形成带有一些空格的2D字符数组;将每行中的空格向右移动;将每行转换为一个单元格;并删除每个单元格上的尾随空格。我假设您希望构建一个不带循环的a
。让N=10
符合您的示例
方法1
这将构建一个字符向量,每个数字后面都有一个空格,删除最后的空格,在空格上拆分,并进行转置
方法2
另一种方法:
a = deblank(cellstr(strcat('A', strjust(num2str((1:10).'), 'left'))));
这将
'A'
与数字连接起来,形成带有一些空格的2D字符数组;将每行中的空格向右移动;将每行转换为一个单元格;并移除每个单元格上的尾随空间。 如果您有R2017a或更高版本,请考虑使用字符串数组而不是字符数组的Car向量。可以使用创建字符串数组
"A"+(1:10)'
如果你有R2017a或以后考虑使用字符串数组代替Car向量的单元格数组。可以使用创建字符串数组
"A"+(1:10)'
循环有什么问题?我打赌它比下面任何一个选项都快。这个循环有什么问题?我打赌它比下面的任何一种选择都要快。谢谢。我需要习惯字符串数组。由于它是一种新的数据类型,我仍然不知道它的可能性和局限性,但我想它在未来将比字符数据类型更有用。谢谢。我需要习惯字符串数组。由于它是一种新的数据类型,我仍然不知道它的可能性和局限性,但我想它在未来将比字符数据类型更有用。