在Matlab中的字符串中重复字母

时间:2018-11-14 12:54:54

标签: matlab

我想在Matlab中生成一个看起来像

的字符串

"BBBBBBBBBBBBBBBBCCCCCCCCCCCCCC"

其中"B"被重复m次,而"C"被重复n次。是否有类似("B","C",n,m)这样的输入功能?

3 个答案:

答案 0 :(得分:5)

您可以使用函数repelem重复个字符所需的次数。

str = 'BC' %This is character vector, NOT a string
n = 4; m = 3;
res = repelem(str,[n,m])

res =

    'BBBBCCC'

答案 1 :(得分:3)

repmat函数适用于char数组,也适用于串联运算符。 所以:

copyfcn = @(B,C,n,m) [repmat(B,[1 n]) repmat(C,[1,m])];
copyfcn('B','C',8,4)

ans =

    'BBBBBBBCCCC'

如果您希望输出是字符串而不是char数组,则可以将其包装在string()函数中。

copyfcn2 = @(B,C,n,m) string([repmat(B,[1 n]) repmat(C,[1,m])]);
copyfcn2('B','C',8,4)

ans = 

    "BBBBBBBBCCCC"

答案 2 :(得分:3)

您可以使用repmat来实现自己的功能:

>> f = @(a,b,n,m) [repmat(a, [1 m]) repmat(b, [1 m])];
>> f('B','C',12,14)

ans =

    'BBBBBBBBBBBBBBCCCCCCCCCCCCCC'