在matlab中将数字转换为字符串

时间:2013-10-15 13:54:27

标签: matlab

我正在尝试将矩阵写入文本文件。 我的矩阵的第一个元素是一个数字(一个对象id),它有几个数字。第一个数字可以是零(例如023512,146498等)。

要编写文件,我有一个循环:

objectID = [023512, 023534, 112512, 063512, 223512];
fSpec = ['%s', '\n'];
fID = fopen('file', 'w');
for k=1:5
    to_write = [num2str(objectID(k)) ',' 'l'];
    fprintf(fID, fSpec, to_write);
end
fclose(fID)

在这个例子中,我得到了文件

23512,升 23534,L 112512,L 63512,L 223512,L

0已经消失了。

我尝试在fSpec ['%d''%s''%s''\ n]中使用%d,但在这种情况下,我收到警告:超出范围或非整数值被截断期间转换为角色。零仍然被删除,所有内容都写在同一行。

有没有办法将数字转换为字符串而不截断零?

谢谢

2 个答案:

答案 0 :(得分:7)

您可以使用:

objectID = 023512;
oStr     = num2str(objectID , '%06d');

答案 1 :(得分:1)

如何使用fprintf中的零填充(假设ID总是6位数字)

objectID = [023512, 023534, 112512, 063512, 223512];
fSpec = '%06d,l\n'; % Note the %06d here!
fID = fopen('file', 'w');
for k=1:5
    to_write = objectID(k);
    fprintf(fID, fSpec, to_write);
end
fclose(fID)