我正在尝试将矩阵写入文本文件。 我的矩阵的第一个元素是一个数字(一个对象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,但在这种情况下,我收到警告:超出范围或非整数值被截断期间转换为角色。零仍然被删除,所有内容都写在同一行。
有没有办法将数字转换为字符串而不截断零?
谢谢
答案 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)