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

big*_*ree 1 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)
Run Code Online (Sandbox Code Playgroud)

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

23512,l 23534,l 112512,l 63512,l 223512,l

0已经消失了.

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

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

谢谢

Nic*_*ick 7

你可以使用:

objectID = 023512;
oStr     = num2str(objectID , '%06d');
Run Code Online (Sandbox Code Playgroud)

  • '%06d'表示领先的空格的前导零'%6d' (2认同)