1

我正在尝试将矩阵写入文本文件。我的矩阵的第一个元素是一个数字(一个对象 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,l 23534,l 112512,l 63512,l 223512,l

0 消失了。

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

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

谢谢

4

2 回答 2

7

你可以使用:

objectID = 023512;
oStr     = num2str(objectID , '%06d');
于 2013-10-15T13:58:51.450 回答
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)
于 2013-10-15T14:04:52.323 回答