Как импортировать данные из файла как список/массив в Mathematica

У меня есть данные (точки), которые я должен импортировать от другой программы до Mathematica, таким образом, я могу вывести его на печать. Я имею контроль о том, как точки будут записанными в файл, таким образом, я могу поместить их всегда, я хочу. Что лучший способ состоит в том, чтобы импортировать их в Mathematica? Когда я собираюсь использовать StreamDensityPlot, переменная, которую я должен буду передать StreamDensityPlot, должна будет быть следующим образом:

data = {
        {
            { a, b, c }, {a, b, c}, {a, b, c},
            { a, b, c }, {a, b, c}, {a, b, c},
            { a, b, c }, {a, b, c}, {a, b, c},
        }
    ...
        {
            { a, b, c }, {a, b, c}, {a, b, c},
            { a, b, c }, {a, b, c}, {a, b, c},
            { a, b, c }, {a, b, c}, {a, b, c},
        }
    }

Как был бы Вы совет меня для помещения данных в промежуточный текстовый файл? И что я должен использовать для импорта его? Я попробовал Импорт ["mytext.txt", "Список"], имея мой текстовый файл с чем-то в форме, показанной выше, но это кажется, поскольку Mathematica рассматривает вопросы как строки, и я ничего не могу сделать с ними. Существует ли способ преобразовать строки в произвольные данные, как возможно на других языках (если они допустимы в том новом типе данных)?

Резюме:

  1. Действительно ли возможно преобразовать строку, например, "5" к числу, в Mathematica? Если да, как?
  2. Действительно ли возможно преобразовать строку как "{1, 2, 3}" к списку в Mathematica? Если да, как?
  3. Действительно ли возможно загрузить файл CSV как список списков как показано выше в Mathematica?

Спасибо

6
задан devoured elysium 22 December 2009 в 07:13
поделиться

2 ответа

Преобразование строк в выражения производится с помощью ToExpression . Если у вас обычный текстовый файл foo.txt, с форматированием, как в вашем примере, то просто импортируйте его в систему Mathematica с помощью Get, т.е. << /path/to/foo.txt; будет импортировать и оценивать данные так, как вам нужно, нет необходимости в переводе текста для выражения.

.
9
ответ дан 8 December 2019 в 17:22
поделиться

Попробуйте отформатировать файл данных следующим образом:

A, B, C, A, B, C, A, B, C
A, B, C, A, B, C, A, B, C
A, B, C, A, B, C, A, B, C
...

Таким образом, вы можете использовать импорт CSV в Mathematica. Затем после импорта разделите каждую строку на список точек.

Partition[#, 3]& /@ Import["file.csv", "CSV"]

Также имейте в виду, что Mathematica использует научную нотацию иначе, чем C (или любой другой язык, который вы используете для записи файла данных.

5
ответ дан 8 December 2019 в 17:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: