【发布时间】:2014-04-18 12:35:40
【问题描述】:
我想在 MATLAB 中使用以下语法从文件中读取矩阵。这个矩阵是双数。
readmtx(fname,nrows,ncols,precision)
这里所有的输入对我来说都很熟悉。但我想知道精度。 int 的精度为'int16'。双数的精度是多少?
【问题讨论】:
标签: matlab
我想在 MATLAB 中使用以下语法从文件中读取矩阵。这个矩阵是双数。
readmtx(fname,nrows,ncols,precision)
这里所有的输入对我来说都很熟悉。但我想知道精度。 int 的精度为'int16'。双数的精度是多少?
【问题讨论】:
标签: matlab
在这种情况下,documentation 声明:
二进制和格式化数据文件均可读取。如果文件是二进制文件,则精度参数是 fread 识别的格式字符串。不支持重复修饰符,例如“40*char”。如果文件已格式化,则精度是格式为 '%nX' 的 fscanf 和 sscanf 样式的格式字符串,其中 n 是在其中找到格式化数据的字符数,X 是转换字符,例如 'g'或“d”。 Fortran 风格的双精度输出(例如 '0.0D00')可以使用精度字符串(例如 '%nD')读取,其中 n 是每个元素的字符数。这是 sscanf 接受的 C 样式格式字符串的扩展。不熟悉 C 的用户应注意,对于格式化整数,'%d' 优于 '%i'。 MATLAB 语法遵循 C 将带有前导零的 '%i' 整数解释为八进制。带行尾的格式化文件需要提供每行的尾随字节数,对于带回车或换行的平台(Macintosh、UNIX®)可以是 1,对于带回车和换行的平台 (DOS) 可以是 2。
此外,查看fread documentation 中的表格摘要会很有帮助:
【讨论】: