Matlab:使用repmat重复字符串并将输出与单元格连接起来

时间:2015-03-23 08:27:15

标签: matlab

基本上,我尝试通过test1=repmat({'aaaa'},1,3)test2=repmat({'bbbb'},1,3)重复2次字符串3次。然后我想将它们放入另一个名为final的单元格中,以便我得到这样的输出:

final = {'aaaa' 'aaaa' 'aaaa' 'cccc' 'bbbb' 'bbbb' 'bbbb'}

但它失败了,而这正是我在输出中得到的: final={ {1x3 cell} 'cccc' {1x3 cell} }

我试着通过查看这里的不同帖子来寻找答案,但我找不到任何有用的东西。这就是我创造这个问题的原因。

1 个答案:

答案 0 :(得分:1)

假设您有以下变量:

test1=repmat({'aaaa'},1,3);
test2 = 'cccc';
test3=repmat({'bbbb'},1,3);

然后test1test3将是1x3个单元格数组,而test2只是一个字符串或char数组。 如果你现在使用

final = {test1, test2, test3};

然后final将成为1x3单元格,其中第一个元素又是1x3单元格(test1),第二个元素是字符串({{1而且第三个元素又是一个test2单元格。这就是您在问题中描述的内容。

如果您使用

1x3

插入了final = {test1{:}, test2, test3{:}} test1的内容,而不是单元格本身。 (有关访问单元阵列中数据的详细信息,请参阅MATLAB help pages)。因此,输出将是test2单元阵列,其包含:首先是1x7的内容(即3个字符串),然后是test1,并且最后是test2的内容。 结果将是

test3