Я рекомендую изменить модель данных. таким образом, вы можете сохранить состояние открытий и закрытий плюс число на элемент.
item = [
{
number: 1,
open: false
},
{
number: 2,
open: true
}
];
AddNewRow() {
this.item.push({number: 3, open: true});
}
<mat-accordion class="example-headers-align" multi="true">
<mat-expansion-panel *ngFor="let item of items;" [expanded]="item.open" >
<mat-expansion-panel-header>
<mat-panel-title> {{item. number}} </mat-panel-title>
</mat-expansion-panel-header>
{{item.number }}
</mat-expansion-panel>
</mat-accordion>
<button (click)="AddNewRow()" value="Add New"> Add New </button>