Я разместил тот же вопрос на MATLAB central , и Билл Грин любезно предоставил ответ .
Я кратко сообщаю и расширяю его, чтобы он мог быть полезен другим.
Решение от Билла:
Вот один из способов создать такой сюжет. Предположим, у вас есть матрица точек, созданная сеткой PDE Toolbox, p, и вектором решения u. Функция ниже создаст график этого решения вдоль линии, определенной местоположениями x и y двух конечных точек. Мой пример для решения на единицу площади, и я хочу график вдоль линии (0, .5) до (1, .5). Я хочу включить 25 пунктов в сюжет. Как видите, настоящую работу выполняет TriScatteredInterpфункция ядра MATLAB.
plotAlongLine(p, u, [0,.5], [1,.5], 25);
function plotAlongLine(p, u, xy1, xy2, numpts)
x = linspace(xy1(1),xy2(1),numpts);
y = linspace(xy1(2),xy2(2),numpts);
F = TriScatteredInterp(p(1,:)', p(2,:)', u);
uxy = F(x,y);
figure; plot(x, uxy); //REM: x is chosen here as a curvilinear coordinate
end
Я хотел бы далее отметить, что предыдущая функция позволяет построить решение uили его функции f(u), если они uопределены на узлах сетки (как это обычно происходит для приближенных решений FEM).
Если нужно сюжетные разделы функций , определенных на сетчатых центрах (например , функции grad u), она может использовать заранее функцию , pdeprtniкоторая производит узел многозначных-функцию из центра многозначных-функций .