【问题标题】:syntax of readmtx(fname,nrows,ncols,precision) in matlabmatlab 中 readmtx(fname,nrows,ncols,precision) 的语法
【发布时间】:2014-04-18 12:35:40
【问题描述】:

我想在 MATLAB 中使用以下语法从文件中读取矩阵。这个矩阵是双数。

readmtx(fname,nrows,ncols,precision)

这里所有的输入对我来说都很熟悉。但我想知道精度。 int 的精度为'int16'。双数的精度是多少?

【问题讨论】:

    标签: matlab


    【解决方案1】:

    在这种情况下,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 中的表格摘要会很有帮助:

    【讨论】:

    • @osimer 这个答案对您有帮助吗?如果是,请考虑接受。
    猜你喜欢
    • 2019-06-27
    • 2021-10-30
    • 1970-01-01
    • 2023-03-30
    • 2011-09-20
    • 1970-01-01
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    相关资源
    最近更新 更多