我想在Matlab中生成一个看起来像
的字符串 "BBBBBBBBBBBBBBBBCCCCCCCCCCCCCC"
其中"B"
被重复m
次,而"C"
被重复n
次。是否有类似("B","C",n,m)
这样的输入功能?
答案 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'