More information about which kind of tables and which data you have is will be useful here. But what I would generally recommend is to create a list of Table objects (this list should be populated somehow automatically because you don't know the number of the tables).
Then I would recommend creating a separate component for <mat-table>
that should bind some data from the Table object.
Something like this pseudo code (note: it's just an example, check the syntaxes, etc. Just giving you the idea):
TS
Table1 = {
name: "Peter",
age: 25,
country: "USA:
}
Table2, Table3 (as above)..
this.tables = [Table1, Table2, Table3]
HTML
<div *ngFor = let table of tables>
<my-table-compopent
[name]=table.name
[age]=table.age
[country]=table.country
</my-table-component>
</div>
my-table.compopent.html
<mat-table #sBSort matSort style="min-width: 1200px;">
<ng-container matColumnDef="domain">
<mat-header-cell *matHeaderCellDef mat-sort-header> {{name}} </mat-header-cell>
<mat-cell *matCellDef="let row"> {{age}} </mat-cell>
</ng-container>
</mat-table>