У меня есть ODE, который использует множество функций. Я хочу экспортировать эти «вспомогательные» функции, чтобы я мог графически их сопоставлять с независимой переменной ODE.Matlab: Экспорт переменных из ODE45
function dFfuncvecdW = ODE(W,Ffuncvec);
X = Ffuncvec(1);
y = Ffuncvec(2);
#lots of code
R = ... #R is a function of X,W and y.
#and a few other functions that are a function of X,W and y.
dXdW = ... #some formula
dydW = ... #some formula
dFfuncvecdW = [dXdW; dydW];
end
Я называю эту функцию:
Wspan = [0 8000.]
X0 = [0; 1.]
[W,X] = ode45(@ODE, Wspan, X0);
Я могу легко выводить X или W в файл Excel:
xlswrite(filename,X,'Conversion','A1');
Но я то, что мне нужно, чтобы сохранить "R" и многие другие значения функций в файл Excel.
Как это сделать?
Я до сих пор чрезвычайно новичок в Matlab. Обычно я использую Polymath, но для этой системы ODE Polymath не может вычислить ответ в течение разумного промежутка времени.
EDIT1: Используемый мной код был создан Polymath. Я использовал базовую версию моей проблемы, так что Polymath может превзойти программу, поскольку она дает код Matlab только после успешного запуска кода Polymath. После экспорта была введена полная система уравнений.
Рад, что вы нашли решение. Однако этот ответ строго отсутствует в деталях - это не намного больше, чем комментарий. Вы должны обновить его, чтобы более конкретно показать, что вы сделали, включая код. Кроме того, сохранение в выходной файл из вашей функции ODE может привести к недействительным/несогласованным данным. Функция ODE может быть оценена много раз за каждый шаг времени (например, в случае недействительного шага). Использование функции вывода, как указано в моем ответе, позволяет избежать этого. Выходная функция вызывается только один раз за один шаг после успешного шага. – horchler