如何将带有浮点数矩阵/table 的简单文本文件加载到 Scilab 中

How to load simple text file with float number matrix / table into Scilab

MATLAB 和 Octave 使用加载并将内容传输到具有相同名称的矩阵变量中。 Scilab 加载命令不会执行相同的操作。 loadmatfile 也做了一些不同的事情。在某些网站上,据说使用循环来读取数据。在 Scilab 中将文本数据文件转换为矩阵的最简单方法是什么?

我在 'Computational Science' 上问了这个问题,但他们建议这是正确的地方。

我知道变量不能为空。但它是一个文件而不是一个变量。当我将 0 赋给文件名时,它实际上删除了文件的内容并将 0 写入其中?

我也明白必须先打开一个文件。

我尝试了很多命令,但我感到很困惑。在 Matlab 和 Octave 中非常简单。

如果有人可以给出建议(实际代码),我可以 post 结果。

fscanfMat

fscanfMat 就是您要找的。

给出以下文件 (my_data.txt):

 my comment about my data
 0.91  0.82  0.86  0.67  0.30 
 0.55  0.06  0.25  0.34  0.53 
 0.60  0.11  0.48  0.90  0.12 
 0.93  0.23  0.68  0.07  0.85 
 0.93  0.86  0.86  0.69  0.09 

将打印以下内容:

-->[my_mat,txt]=fscanfMat("./my_data.txt")
 txt  =

  my comment about my data   
 my_mat  =

    0.91    0.82    0.86    0.67    0.3   
    0.55    0.06    0.25    0.34    0.53  
    0.6     0.11    0.48    0.9     0.12  
    0.93    0.23    0.68    0.07    0.85  
    0.93    0.86    0.86    0.69    0.09  

备注

  • 如果需要,文件的第一行非数字行将以文本形式返回(因此可选,例如对于任何注释)
  • 所有剩余行的列数必须相同。
  • 假设列分隔符是空格或制表符,如果两者都有,则默认选择空格。
  • 矩阵的列数将遵循文件中找到的列数。
  • 通过检测输入文件中的eof获取行数。
  • 它支持编码为 ANSI/ASCII 和 UTF-8 的文件。
  • 您可以选择控制格式字符串的解析(参见 scanf_conversion 文档)