dlmwriter 在每个字符之间放置 space
dlmwriter puts space between each character
我正在尝试将一个相当大的二进制数组写入文本文件。我的数据维度是 1 X 35,000
,就像:
0 0 0 1 0 0 0 .... 0 0 0 1
我想要做的是首先在这个数组的开头添加一个字符串,比如说 ROW1,然后将这个数组导出到一个带有 space 分隔符的文本文件。
到目前为止我尝试过的:
fww1 = strcat({'ROW_'},int2str(1));
fww2 = strtrim(cellstr(num2str((full(array(1,:)))'))');
new = [fww1 fww2];
dlmwrite('text1.txt', new,'delimiter',' ','-append', 'newline', 'pc');
作为这段代码的结果,我得到了:
R O W _ 1 0 0 0 0 1 ....
如何获取如下:
ROW_1 0 0 0 0 1 ....
写入文本文件最灵活的方式是使用fprintf
。有一点学习曲线(您需要弄清楚格式说明符,即 %d
等),但这绝对值得,许多其他编程语言都有一些 fprintf
的实现.
因此,针对您的问题,让我们执行以下操作。首先,我们将打开一个文件进行写入。
fid = fopen('text1.txt', 'wt');
'wt'
表示我们将以文本模式打开文件进行写入。接下来,让我们写下你想要的这个字符串:
row_no = 1;
fprintf(fid, 'ROW_%d', row_no);
%d
是一个特殊字符,它告诉 fprintf
将其替换为给定数字的十进制表示形式。在这种情况下,它的行为很像 int2str
(也许 num2str
是一个更好的类比,因为它也适用于非整数)。
接下来,我们将写入数据行。同样,我们将使用 %d
来指定我们想要布尔数组的十进制表示形式。
fprintf(fid, ' %d', array(row_no,:));
有几点需要注意。首先,我们的格式说明符还在每个数字前面包含一个 space,以便处理分隔符。其次,我们只指定了一种格式,而是一个数字数组。遇到这种情况时,fprintf
将继续重复格式,直到用完数字。
接下来,我们将写一个换行符来表示行的结束(\n
是fprintf
识别的特殊字符之一):
fprintf(fid, '\n');
如果你有更多行要写,你可以在这些 fprintf
语句上放置一个 for 循环。最后,我们将关闭该文件,以便操作系统知道我们已完成写入。
fclose(fid);
我正在尝试将一个相当大的二进制数组写入文本文件。我的数据维度是 1 X 35,000
,就像:
0 0 0 1 0 0 0 .... 0 0 0 1
我想要做的是首先在这个数组的开头添加一个字符串,比如说 ROW1,然后将这个数组导出到一个带有 space 分隔符的文本文件。
到目前为止我尝试过的:
fww1 = strcat({'ROW_'},int2str(1));
fww2 = strtrim(cellstr(num2str((full(array(1,:)))'))');
new = [fww1 fww2];
dlmwrite('text1.txt', new,'delimiter',' ','-append', 'newline', 'pc');
作为这段代码的结果,我得到了:
R O W _ 1 0 0 0 0 1 ....
如何获取如下:
ROW_1 0 0 0 0 1 ....
写入文本文件最灵活的方式是使用fprintf
。有一点学习曲线(您需要弄清楚格式说明符,即 %d
等),但这绝对值得,许多其他编程语言都有一些 fprintf
的实现.
因此,针对您的问题,让我们执行以下操作。首先,我们将打开一个文件进行写入。
fid = fopen('text1.txt', 'wt');
'wt'
表示我们将以文本模式打开文件进行写入。接下来,让我们写下你想要的这个字符串:
row_no = 1;
fprintf(fid, 'ROW_%d', row_no);
%d
是一个特殊字符,它告诉 fprintf
将其替换为给定数字的十进制表示形式。在这种情况下,它的行为很像 int2str
(也许 num2str
是一个更好的类比,因为它也适用于非整数)。
接下来,我们将写入数据行。同样,我们将使用 %d
来指定我们想要布尔数组的十进制表示形式。
fprintf(fid, ' %d', array(row_no,:));
有几点需要注意。首先,我们的格式说明符还在每个数字前面包含一个 space,以便处理分隔符。其次,我们只指定了一种格式,而是一个数字数组。遇到这种情况时,fprintf
将继续重复格式,直到用完数字。
接下来,我们将写一个换行符来表示行的结束(\n
是fprintf
识别的特殊字符之一):
fprintf(fid, '\n');
如果你有更多行要写,你可以在这些 fprintf
语句上放置一个 for 循环。最后,我们将关闭该文件,以便操作系统知道我们已完成写入。
fclose(fid);