如何在MATLAB中导出矩阵?

时间:2015-01-31 08:39:12

标签: matlab

我尝试导出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'但是出现了类似的错误。如果您有任何建议,请告诉我。谢谢

1 个答案:

答案 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