如何调整此代码以使输出在每个部分的开头和结尾添加项目?
工作代码示例:
values = 1 : 11;
binSize = 3;
fileNum = 1;
n = numel(values);
for i = 1 : binSize : n
part = values(i : min(n, i + binSize - 1));
fprintf('File %d contains %s\n', fileNum, mat2str(part));
fileNum = fileNum + 1;
end
-
Output:
File 1 contains [1 2 3]
File 2 contains [4 5 6]
File 3 contains [7 8 9]
File 4 contains [10 11]
如何调整此代码以使输出在每个部分的开头和结尾添加项目?
输出示例我正在寻找:
Output I'm looking for:
File 1 contains [1 1 1 2 3 3 3]
File 2 contains [4 4 4 5 6 6 6]
File 3 contains [7 7 7 8 9 9 9]
File 4 contains [10 10 10 11 11 11]
我这样做的原因是: 我有一系列音频波形文件,我想用它们淡入和淡出每个部分。
答案 0 :(得分:0)
使用 padarray
实施来修改您的fprintf
部分,该实施可以沿着行复制边框元素(结束和开头)的数据,如下所示 -
fprintf('File %d contains %s\n', fileNum, mat2str(padarray(part,[0 2],'replicate')));
现在,padarray
是图像处理工具箱的一部分,如果您没有,则可以使用repmat
代替,如下所示 -
part_mod = [repmat(part(1),1,2) part repmat(part(end),1,2)];
fprintf('File %d contains %s\n', fileNum, mat2str(part_mod));