是否可以使用 Matlab 识别数据类型?



情况是这样的:我使用Matlab读取光谱仪创建的文件。为此,我使用以下简单代码:

id=fopen(filename, 'r', 'l');       
[realimag, ~] = fread(id, 'int32');
fclose(id);

我遇到的问题是,现在我有第二个光谱仪,它可以生成需要使用 fread 函数中的"double"读取的文件。所以我每次都必须更改代码...有没有办法知道数据类型是什么,这样我就不必每次都更改代码?

提前谢谢。

fread是读取文件,将它们解释为二进制文件,即作为位序列。因此,您可以读取二进制数据流并随心所欲地解释它,除非有人告诉您如何读取它,否则您无法知道如何读取它。

尝试使用这些命令从包含以下内容的文件读取

àéèìòù

它会起作用,你会得到

>> realimag
realimag =
-320280096
168491506

这根本没有意义。

如果你读它

[realimag, ~] = fread(id, 'char');

然后你会得到

realimag =
224
233
232
236
242
249
10
10

你猜怎么着?

>> int32('àéèìòù')
ans =
1×6 int32 row vector
224   233   232   236   242   249

那么,这两个十是什么呢?井

>> char(10)
ans =
'
'

新行。

这只是说,当您读取二进制文件时,您可以选择如何读取它。

显然,如果有人告诉你前n个字节包含一个字符串,告诉你如何读取文件的其余部分,那么情况就不同了。但是,同样,你必须知道,或者有人必须告诉你。

相关内容

  • 没有找到相关文章

最新更新