2

我有一个CSV 文件,请注意您应该复制并粘贴它并将文件名重命名为 GPA.csv,我想将其导入 Mathematica 并使用幂函数对其进行调整。

注意:我知道将它与幂函数完美拟合是非常不可取的,因为它会给出错误的预测。

所以我开始做以下事情:

data = Import["C:\\GPA.csv", "Table"]
linfit = Fit[data, {1,x}, x]

现在奇怪的是它给了我一个错误说明:

Fit::fitc:坐标数 (0) 不等于变量数 (1)。>>

但我确信我已经输入了超过 350 个坐标。我究竟做错了什么?

PS:我也尝试过 test = Transpose[data],但是我得到了大约 350 个坐标,它仍然不等于变量的数量。

4

1 回答 1

1

要回答您的两个问题:

  1. Import["C:\\GPA.CSV", "Data"]将使一切正常 - 就像简单的那样Import["C:\\GPA.CSV"]

  2. 这些东西不同的原因是因为 Mathematica 有一种不直观且 (IMO) 令人困惑的文件导入方式。"Table"不起作用的具体原因是这被解释为“文件格式”,默认情况下 - 请参阅格式文档-Import假设在这种情况下:

    "FieldSeparators" = {" ","\t"}
    

    这样您的逗号实际上被假定为每行字符串的一部分,而不是分隔符 - 只允许使用空格和制表符。1, 2(如果您有一个文件包含一个字符串"1,"和一个数字,这会更加令人困惑2。)因此,您也可以使用

    Import["C:\\GPA.CSV", "Table", "FieldSeparators" -> ","]
    

    当然,CSV 文件格式假定逗号作为您想要的分隔符。令人困惑的是"Data",在这种情况下,它不是“文件格式”,而是“元素”。这意味着.csv文件扩展名允许将文件作为 CSV 文件导入,然后您请求……等待它……导入文件中的“数据”元素。哪个是数据。

您可以尝试阅读文档格式列表,Import我想您已经尝试过了。

于 2012-08-05T12:22:37.320 回答