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つの文字列"1,"と1つの数値を含むファイルがある場合、はるかに混乱します2。)その結果、次を使用することもできます。

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

    もちろん、CSVファイル形式では、必要に応じて区切り文字としてコンマを想定しています。紛らわしいことに"Data"、このコンテキストでは、は「ファイル形式」ではなく「要素」です。これは、.csvファイル拡張子によってファイルをCSVファイルとしてインポートできることを意味します。次に、インポートされたファイルの「data」要素を要求します...それを待ちます...。これがデータです。

ドキュメントフォーマットのリストを読んでみることができますImportが、すでに試したと思います。

于 2012-08-05T12:22:37.320 に答える