Matlab使用列表中的随机字符串sprintf错误的结果



我想使用"sprintf"和列表中的随机名称创建一个字符串变量(以便使用这样的名称保存图像)。代码草案如下:

Names = [{'C'} {'CL'} {'SCL'} {'A'}];
nameroulette = ceil(rand(1)*4)
filename = sprintf('DG_%d.png', Names{1,nameroulette});

但当我检查filename时,我得到的是我键入的文本,后面不是一个字符串,而是一个我不知道它来自哪里的数字。例如,如果我的nameroulette = 1,那么filename就是DG_67.png,如果nameroulette = 4就是filename = 'DG_65.png'。这个数字从哪里来?我该如何解决这个问题?

您只需要更改

filename = sprintf('DG_%d.png', Names{1,nameroulette});

filename = sprintf('DG_%s.png', Names{1,nameroulette});

顺便说一下,你可能想看看randi命令,用于绘制随机整数。

最新更新