我尝试导出f
的矩阵double
。我在f
中的数据是三列中的实数。我希望txt
文件作为输出,其中列由制表符分隔。但是,当我尝试dlmwrite
函数时,只有第一列显示为输出。
for k = 1:10
f = [idx', firsttime', sectime'];
filename = strcat(('/User/Detection_rerun/AF_TIMIT/1_state/mergedlabels_train/'),(files_train{k,1}),'.lab');
dlmwrite(filename,f,'\t') ;
end
当我使用dlmwrite(filename,f,'\t','newline','pc') ;
时,我一直收到错误无效的属性标记:\ t。我甚至尝试过' tab'而不是' \ t'但是出现了类似的错误。如果您有任何建议,请告诉我。谢谢
答案 0 :(得分:2)
这是因为您没有正确地呼叫dlmwrite
。要指定分隔符,必须使用delimiter
标志,后跟您想要的特定分隔符。在您的情况下,您使用\t
。换句话说,您需要这样做:
for k = 1:10
f = [idx', firsttime', sectime'];
filename = strcat(('/User/Detection_rerun/AF_TIMIT/1_state/mergedlabels_train/'),(files_train{k,1}),'.lab');
dlmwrite(filename,f,'delimiter','\t') ;
end
顺便说一句,您正在使用newline
标记pc
,这意味着您正在指定PC识别的回车符。我建议你不要这样做,让MATLAB自动推断出来。如果你知道自己在做什么,只强制换行符。
FWIW,MATLAB文档非常明确关于函数的分隔符和其他怪癖:http://www.mathworks.com/help/matlab/ref/dlmwrite.html