【问题标题】:MATLAB - How to save vectors with different lengthMATLAB - 如何保存不同长度的向量
【发布时间】:2014-06-20 03:51:14
【问题描述】:

我创建了一个包含向量的文件,这些向量的元素之间可能有空白空间。

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

我使用 fprintf() 函数逐行保存文件 'myfile.txt'

好吧,当我使用命令 load('myfile.txt') 加载文件时,我收到此错误消息“行数...必须与前一行相同”

我该如何解决?也许通过另一种方式保存行向量?怎么办?

谢谢

【问题讨论】:

  • 使用save 命令保存.mat 文件。
  • 如果您需要另存为文本,请使用空格以外的分隔符,例如逗号。这在阅读文件时可能会有所帮助
  • 如果您可以将空位保存为 NaN,请查看 this
  • @LuisMendo:我将整个向量保存为一条线,我不能放置分隔符

标签: matlab file vector


【解决方案1】:

使用@maxywb 在他的评论中所说的save 命令会更好,但是如果您发现自己的文本文件没有一致的列号,则可以解析该文件逐行并将结果保存到元胞数组中

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)

【讨论】:

  • 好的,谢谢,这可能是一个很好的解决方案,但我应该创建一个包含单元格值的新文件(如你所建议的那样)如果我可以创建一个新的“myFile.txt”怎么办你认为更好的做法是什么?我会逐行保存(不是单个值)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多