Модель PDE хранит коэффициенты в своей EquationCoefficients собственность. Предположим model - имя модели. Получить коэффициенты:
coeffs = model.EquationCoefficients;
Для просмотра назначения активного коэффициента для региона вызовите findCoefficients функция. Например, создайте модель и просмотрите геометрию.
model = createpde(); geometryFromEdges(model,@lshapeg); pdegplot(model,'FaceLabels','on') ylim([-1.1,1.1]) axis equal

Задайте постоянные коэффициенты для всех областей модели.
specifyCoefficients(model,'m',0,'d',0,'c',1,'a',0,'f',2);
Укажите другое f коэффициент для каждого субрегиона.
specifyCoefficients(model,'m',0,'d',0,'c',1,'a',0,'f',3,'Face',2); specifyCoefficients(model,'m',0,'d',0,'c',1,'a',0,'f',4,'Face',3);
Изменение спецификации на ненулевую a на область 2.
specifyCoefficients(model,'m',0,'d',0,'c',1,'a',1,'f',3,'Face',2);
Просмотрите назначение коэффициентов для области 2.
coeffs = model.EquationCoefficients;
findCoefficients(coeffs,'Face',2)ans =
CoefficientAssignment with properties:
RegionType: 'face'
RegionID: 2
m: 0
d: 0
c: 1
a: 1
f: 3
Здесь отображается признак «last assignment wins».
Просмотрите назначение коэффициентов для области 1.
findCoefficients(coeffs,'Face',1)ans =
CoefficientAssignment with properties:
RegionType: 'face'
RegionID: [1 2 3]
m: 0
d: 0
c: 1
a: 0
f: 2
Назначение активного коэффициента для области 1 включает в себя все три области, хотя это назначение больше не активно для областей 2 и 3.
Чтобы удалить все коэффициенты в модели PDE, используйте delete. Предположим model - имя модели. Удалить все коэффициенты из model.
delete(model.EquationCoefficients)
Чтобы удалить определенные назначения коэффициентов, удалите их из model.EquationCoefficients.CoefficientAssignments вектор.
coefv = model.EquationCoefficients.CoefficientAssignments; delete(coefv(2))
Совет
Удалять коэффициенты не требуется; их можно переопределить, позвонив по телефону specifyCoefficients снова. Однако удаление неиспользуемых назначений может уменьшить размер модели.
Для изменения назначения коэффициента требуется дескриптор коэффициента. Чтобы получить дескриптор коэффициента:
Сохранить дескриптор при использовании specifyCoefficients. Например,
coefh1 = specifyCoefficients(model,'m',m,'d',d,'c',c,'a',a,'f',f);
Получить дескриптор с помощью findCoefficients. Например,
coeffs = model.EquationCoefficients;
coefh1 = findCoefficients(coeffs,'face',2);Можно изменить любое свойство дескриптора коэффициента. Например,
coefh1.RegionID = [1,3]; coefh1.a = 2; coefh1.c = @ccoeffun;
Примечание
Редактирование существующего назначения таким образом не изменяет его приоритет. Например, если активный коэффициент в области 3 был назначен после coefh1, затем редактирование coefh1 включение области 3 не делает coefh1 активный коэффициент в области 3.