Я относительно новичок в максиме. Я хочу знать, как записать массив в текстовый файл, используя maxima.
Как записать массив в текстовый файл в maxima?
Ответы (3)
Я знаю, что для оригинального сообщения уже поздно, но я оставлю это здесь на случай, если кто-то найдет его в поиске.
Пусть A будет массивом Lisp, массивом Maxima, матрицей, списком или вложенным списком. Затем:
write_data (A, "some_file.data");
Пусть S будет выходным потоком (созданным openw или opena). Затем:
write_data (A, S);
Ввод ?? numericalio
в строке ввода или ?? write_
или ?? read_
покажет некоторую информацию об этой функции и связанных с ней функциях.
Я никогда не использовал maxima (и даже не слышал о нем), но небольшой поиск в Google из любопытства обнаружил следующее: http://arachnoid.com/maxima/files_functions.html
Из того, что я могу собрать, вы должны сделать что-то вроде этого:
stringout("my_new_file.txt",values);
В нем говорится, что второй параметр функции stringout может быть одним или несколькими из следующих:
- ввод: все записи пользователей с начала сеанса.
- значения: все назначения пользовательских переменных и массивов.
- функции: все пользовательские функции (включая функции, определенные в любых загруженных пакетах).
- все: все вышеперечисленное. Такой список обычно полезен только для редактирования и извлечения полезных разделов.
Поэтому, передав values
, он должен сохранить ваши назначения массива в файл.
Еще немного некропостинга, как подсказал гугл, но я не нашел его достаточно полезным. Мне нужно было экспортировать его следующим образом:
-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]));