林' Matlab中的新内容。我有这样的双矩阵M:
3.4452e-10 3.727e-10
5.3276e-11 5.4956e-11
-4.5277e-12 -1.5932e-10
9.5572e-11 -2.9293e-11
4.8192e-11 -7.5237e-11
-1.0847e-10 3.5613e-11
并为数据命名columane名称如下
dataset({M, 'A','B'})
then I write it to folder using
dlmwrite('MyNewfile',M)
但是当我打开MyNewfile时,我看到矩阵的列名被删除了。 当我在目录中写入列名时,有谁知道如何保留列名?
答案 0 :(得分:1)
首先,不推荐dataset
,您应该使用table
。
其次,来自Matlab文档:
dlmwrite(filename,M)将数组M中的数字数据写入ASCII格式 文件
因此它只会写入矩阵的内容,而不会写出任何非数字数据。
您始终可以先使用写入文件中的列标题,然后附加数据,或使用另一个处理文本和数字数据的matlab编写函数
答案 1 :(得分:0)
让我们考虑一下你正在尝试将A写入文件有两种方法
A =
1.0e-09 *
0.3445 0.3727
0.0533 0.0550
-0.0045 -0.1593
0.0956 -0.0293
0.0482 -0.0752
-0.1085 0.0356
要么将行名称附加到像这样的文件
中>> dlmwrite('testtext3.txt',['A B'] ,'delimiter','')
>> dlmwrite('testtext3.txt',[A],'-append','delimiter','\t','roffset',1)
或您将A转换为表格
T =array2table(A,'VariableNames',{'A' ,'B'})
T =
A B
___________ ___________
3.4452e-10 3.727e-10
5.3276e-11 5.4956e-11
-4.5277e-12 -1.5932e-10
9.5572e-11 -2.9293e-11
4.8192e-11 -7.5237e-11
-1.0847e-10 3.5613e-11
然后将此表写入文件
writetable(T,'testing.txt')
更新:由于用户提出了解析下面给出的数据的问题,方法
fileID = fopen('testtext3.txt','r+');
C = textscan(fileID,'%s%s')
C =
{7x1 cell} {7x1 cell}
>> C{1}
ans =
'A'
'3.4452e-10'
'5.3276e-11'
'-4.5277e-12'
'9.5572e-11'
'4.8192e-11'
'-1.0847e-10'