Модель 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 assignation 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.