Как записать массив в текстовый файл в maxima?

Я относительно новичок в максиме. Я хочу знать, как записать массив в текстовый файл, используя maxima.


person phobos    schedule 17.03.2012    source источник


Ответы (3)


Я знаю, что для оригинального сообщения уже поздно, но я оставлю это здесь на случай, если кто-то найдет его в поиске.

Пусть A будет массивом Lisp, массивом Maxima, матрицей, списком или вложенным списком. Затем:

write_data (A, "some_file.data");

Пусть S будет выходным потоком (созданным openw или opena). Затем:

write_data (A, S);

Ввод ?? numericalio в строке ввода или ?? write_ или ?? read_ покажет некоторую информацию об этой функции и связанных с ней функциях.

person Robert Dodier    schedule 26.05.2012

Я никогда не использовал maxima (и даже не слышал о нем), но небольшой поиск в Google из любопытства обнаружил следующее: http://arachnoid.com/maxima/files_functions.html

Из того, что я могу собрать, вы должны сделать что-то вроде этого:

stringout("my_new_file.txt",values);

В нем говорится, что второй параметр функции stringout может быть одним или несколькими из следующих:

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

Поэтому, передав values, он должен сохранить ваши назначения массива в файл.

person Jeremy Harris    schedule 17.03.2012

Еще немного некропостинга, как подсказал гугл, но я не нашел его достаточно полезным. Мне нужно было экспортировать его следующим образом:

-0.8000,-0.8000,-0.2422,-0.242
-0.7942,-0.7942,-0.2387,-0.239
-0.7776,-0.7776,-0.2285,-0.228
-0.7514,-0.7514,-0.2124,-0.212
-0.7168,-0.7168,-0.1912,-0.191
-0.6750,-0.6750,-0.1655,-0.166
-0.6272,-0.6272,-0.1362,-0.136
-0.5746,-0.5746,-0.1039,-0.104

Итак, я нашел, как это сделать с помощью printf:

with_stdout(filename, for i:1 thru length(z_points) do
        printf (true,"~,4f,~,4f,~,4f,~,3f~%",bot_points[i],bot_points[i],top_points[i],top_points[i]));
person ProdoElmit    schedule 07.05.2014