【问题标题】:Import .txt file to matlab, anything works将.txt文件导入matlab,一切正常
【发布时间】:2016-09-16 18:57:23
【问题描述】:

我在将数据导入 matlab 工作区时遇到问题。我的文件是一个 .txt 文件,有 8 列和很多行(我数不清)。前 5 列是数字,但后 3 列是路径(字母),每条路径表示与前 5 个数据对应的图像的位置。 我想将整个文件保存到一个矩阵中,我尝试过加载(但当我混合字符时它不起作用),文本扫描(但它只给我一个行向量),导入数据(但只写第一列数据) , fscan....我想我每个命令都试过了,还是不行。

我想指定我拥有的文本是另一个我想保存以供将来使用的变量,而不是标题。

谁能帮帮我?

提前致谢。

【问题讨论】:

  • 一个矩阵只能存储数字,我认为你需要一个单元格。
  • 我没有标题,我希望我的文本成为另一个变量,以便将来使用它。 obchardon 已经解决了我的问题。

标签: matlab


【解决方案1】:

您应该将数据存储到单元格中,而不是矩阵中,textscan 应该可以正常工作

fileID = fopen('file.txt');
C = textscan(fileID,'%f %f %f %f %f %s %s %s');
fclose(fileID);

如果您的列之间有特定的分隔符,您可以指定此分隔符:

C = textscan(fileID,'%f %f %f %f %f %s %s %s','Delimiter','|')

【讨论】:

  • 我尝试了你的行,matlab 将 C 读取为 1x8 单元格,每个单元格包含一个 2149x1 双倍数据,如果我点击它,它会显示一个包含我的数据的行向量。但我希望 matlab 显示我的数据有一个表格,所以我可以获取任何我想要的数据。有什么方法可以从 C 中获取数据,这样我就可以给出一个行和列的位置来获取我想要的数据?
  • Matlab 不是 DBMS,因此您不会找到相同的表概念。
  • @obchardon 实际上 matlab 确实有一个 table 结构,以及(可能与此更相关的)一个 dataset 结构。两者都允许您使用列“名称”等“查询”数据集。
  • @TasosPapastylianou Woooo cool 我不知道这个功能!
猜你喜欢
  • 2018-12-23
  • 2015-03-17
  • 2018-04-12
  • 2015-01-30
  • 1970-01-01
  • 2016-11-18
  • 1970-01-01
  • 1970-01-01
  • 2014-04-24
相关资源
最近更新 更多