2014-06-19 61 views
1

我创建了一个包含向量的文件,这些文件可以在它们的元素之间有空的空间。MATLAB - 如何保存具有不同长度的向量

-77.4 1 0.17 260  88 1004.0 1006.5 
-77.3 1 0.17    1009.2 1011.8 

我的文件'myfile.txt的'行节省一行fprintf中()功能。

好吧,当我加载与命令负载(“myfile.txt的”)的文件我收到此错误信息“上线的列数...必须同以前行”

我该如何解决它?也许以另一种方式保存行向量?怎么做?

谢谢

+0

使用'save'命令来保存.mat文件。 – maxywb

+0

如果需要另存为文本,请使用空格以外的分隔符,例如逗号。这可能有助于当阅读文件 –

+0

,如果你可以将空的地方保存为NaNs,看看[这个](http://stackoverflow.com/questions/23552162/matlab-read-file-with-varying-line-lengths ) – Divakar

回答

1

你会使用save命令@maxywb在他的评论中陈述更好,但如果你发现自己在你有没有一致的列数的文本文件的情况下,您可以逐行解析文件并将结果保存到单元格阵列中

fid = fopen('myFile.txt','r'); 
values = {}; 
count = 1; 
tline = fgets(fid); 
while ischar(tline) 
    values{count} = textscan(tline,'%f','delimiter',', '); 
    count = count+1; 
    tline = fgets(fid); 
end 
fclose(fid) 
+0

好的谢谢,这可能是一个很好的解决方案,但我应该创建一个包含单元格值的新文件(如您所建议的)我可以创建一个新的“myFile.txt”,你认为怎么做更好?我会逐行保存(不是单个值) – Mixo

相关问题