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

时间:2016-05-11 13:08:31

标签: string matlab list printf

我想使用'printprint'创建一个字符串变量,并从列表中创建一个随机名称(为了保存具有这样名称的图像)。代码草案如下:

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

但是当我检查filename时,我得到的是我输入的文字,而不是其中一个字符串,而是一个我不知道它来自何处的数字。例如,如果我的nameroulette = 1filenameDG_67.png,而nameroulette = 4filename = 'DG_65.png'。这个数字来自哪里,如何解决这个问题呢?

1 个答案:

答案 0 :(得分:3)

您只需要更改

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

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

顺便提一下,您可能需要查看用于绘制随机整数的randi命令。