问题标签 [textscan]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
139 浏览

string - MatLab 使用“for”和“if”作为字符串

我有 text.txt 包含单词和数字。

1. 我想对包含字符串的单元格或矩阵使用“for”和“if”。


这没有用。

2. 我想做这样的事情。


它是用非 Matlab 方式编写的,但你知道我想做什么。

如果 text 和 text2 是数字矩阵,这种类型的工作可能很容易。但它们是字符串。

我怎样才能对数值矩阵执行相同的操作?

0 投票
1 回答
92 浏览

textscan - 为每一行读取 txt 文件的特定部分

我有一个 txt 文件,其中提供了很多信息。我只想读取和存储“状态”部分。

例子:

我想要做的是将字符串数据从用户名存储到“ENG”字符串。

谢谢你的帮助。

0 投票
1 回答
2813 浏览

matlab - Convert DAT file to a CSV format using Matlab

I have the following text file, THERM2.DAT which has a unique format:

This is only a portion of the file, there are hundreds of lines where each group of 4 lines correspond to a particular species.

My goal is to convert all of this data into something more generic, like a CSV file so it can be easily read by various programs like Excel, Matlab, etc. Something like the following would be nice:

Since I have Matlab, I was wondering if I could use it to export the data to a CSV file. So far I have the following Matlab script:

Using textscan puts all the data in a cell array but I don't know how to grab the data from the array and write it to CSV formatted text.

0 投票
1 回答
521 浏览

matlab - matlab中的textscan奇怪的行为

我有一个我试图在 matlab 中运行的代码,它给出了一个textscan函数错误,因为它无法在分隔符上拆分字符串,尽管我确信该代码适用于其他版本的 matlab(在其他计算机上)

有人可以解释为什么会这样吗?textscan 功能最近有变化吗?我正在使用matlab 2013

0 投票
2 回答
1171 浏览

string - 在 MATLAB 中使用 textscan 读取固定宽度字符串时出错

我正在使用 textscan 从文本文件中读取固定宽度(9 个字符)的数据。Textscan 在包含字符串的某一行失败:

我想从中读取两个数字:

问题可以这样复制:

返回以下错误:

令人惊讶的是,如果我们加上一个减号,我们不会得到一个错误,而是一个错误的结果:

现在 dat{1} 是:

显然,我需要这两种情况才能工作。我目前的解决方法是在字段之间添加逗号并在 textscan 中使用逗号作为分隔符,但这很慢而且不是一个好的解决方案。有什么方法可以使用 textscan 或其他内置(出于性能原因)MATLAB 函数正确读取此字符串?

0 投票
1 回答
415 浏览

matlab - 将大文本文件导入 matlab(包括注释;文本扫描)

我正在尝试将大 txt 文件 (>1gb) 导入 matlab。

这是数据结构:

我使用 textscan 功能:

工作得很好,但是如果我将格式字符串更改为 '%f %f %f %f %s' 并删除 'commentStyle','#' 选项,我需要标记为 '#' 的注释,每第二行读取为单个字符串:/

有任何想法吗?

0 投票
1 回答
302 浏览

matlab - 如何在 matlab 中读取具有可变十六进制值列的文本文件?

我有一个需要读取的文本文件,其中包含不同数量的十六进制数据列,具体取决于行。我正在尝试将其全部读取然后操作十六进制,但我似乎找到了一种读取文件的好方法。我想在十六进制之前的前五列中读取(那些将永远存在)作为字符串,然后最终将十六进制转换为十进制并绘图。但是,每行中的十六进制字数是不同的。我正在尝试使用文本扫描,但可以弄清楚如何做到这一点。任何帮助将不胜感激。

以下是一些示例数据:

x 0:47950 0x---- 001:00:07:56.63 16-R-08-04 0x8000 0x0012 0x0000

x 0:136994 0x---- 001:00:13:14.35 16-R-07-04 0x8000 0x0012 0x0000 0x0000

x 0:532637 0x---- 001:00:40:29.86 15-R-08-04 0x8000 0x0012 0x0000 0x0000 0x0000 0x0000

x 0:532637 0x---- 001:00:40:29.86 16-R-04-04 0x8000 0x0012 0x0000 0x0000 0x0000

x 0:47950 0x---- 001:00:07:56.63 16-R-08-04 0x8000 0x0012 0x0000

0 投票
0 回答
573 浏览

matlab - 读取未知长度和混合内容的txt文件

我正在尝试让 Matlab 读取一个 .unv 文件(它似乎可以正常打开并被视为 .txt)并收集数据。文件第一部分的示例如下:

在这一点上,前 11 行对我来说并不是很相关。我已经将此输出解码到我知道“1716”表示材料属性定义的开始的地步。在这个文件中只有一种材料,但在其他文件中可能有一大堆,每个都以“1716”开头。

我希望此时能够忽略前 11 行,然后让 Matlab 存储材料属性数据,但由于我不知道将存在多少材料,我需要识别值“1716”,如果看来,阅读新材料。

最后的数字“2420”也表示不同类型的数据集(长度未知),所以最终我只想在文档中搜索这些标记并将数据保存在基于它们的数组等中。

我玩过 textscan 但遇到了麻烦......想法?

0 投票
2 回答
21602 浏览

arrays - MATLAB:使用 textscan 并在矩阵中转换元胞数组

我有一个带有以下结构的选项数据的大型 csv 文件(应该大约 100 万行)(内容已更改):

我已经使用以下内容成功导入了一个测试文件:

但是,C 是一个元胞数组,这使得在 matlab 中处理文件的内容变得更加困难。将它作为“常规”数组会更容易(请原谅我不知道正确的命名法,我刚开始使用 matlab)。

如果我输出 C,我得到:

所以在 C 的元胞数组中,有数组和元胞数组——数字数组和字符串元胞数组。如果我尝试检查元素 (1,2),我必须使用 C{1}(2),但如果我想检查元素 (2,2),我必须使用 C{2}{2}。理想情况下,我想同时访问 C(1,2) 和 C(2,2)。问题是,我该怎么做?

我已经搜索了解决方案并找到了 cells2mat 但它只有在所有内容都是数字的情况下才有效(我认为)。我找到了这个解决方案:将单元格数组的单元格数组转换为矩阵的矩阵,但 horzcat 检索到一个错误,我相信这可能是由于同样的问题而发生的。

提前感谢您的宝贵时间。

0 投票
1 回答
2441 浏览

matlab - 如何使用多个分隔符进行文本扫描

我正在尝试读取包含数千行格式的文件:

这是一个制表符分隔的文件。最后一列是无关紧要的。之前的两列是可变的,所以我将它们作为字符串读取。我的主要问题是第二列。它是一个分为几个部分的数字

是 2013 年,第 99 天,第二个 2314.029。

我想使用 textscan 一次读取整个文件,但是在我读取它时以某种方式拆分了那个复杂的日期字符串。

目前我有扫描字符串:

它将日期字符串读入两个浮点数。我真正想要的是把它读成两个整数和一个浮点数。但是使用

将其截断为 2013 和 2314 并弄乱该行的其余部分。我试图逃避'。和 '。' 但这会弹出一个错误。

有什么建议么?由于文件很大,我想这样做,因为它被扫描了。当您开始尝试更改大型数据集的类型时,内存不足。

编辑:

真的,我需要一个 2013.99.2314.029 的扫描字符串来返回两个整数和一个浮点数。

不工作。也不使用分隔符作为“.”。我也试过 %u 。它在读取小数点时四舍五入。

乐叹息。