The [formControl] directive take a FormControl as value and you are passing it a number, hence the Cannot find control with unspecified name attribute. I would have either a wrapping array or a separate array in order to access the formControls by index:
const wrappingArray = guidelines.fields.map(field => ({formControl, ...field}));
And use it
<div *ngFor="let field of wrappingArray; let i=index">
<mat-form-field>
<input [formControl]="field.formControl" ngDefaultControl matInput placeholder={{field.field_name}} value={{field.notes}}>
</mat-form-field>
</div>
Or with a separate array
const formControls = [formControl1, ... formControlN];
And use it
<div *ngFor="let field of guidelines.fields; let i=index">
<mat-form-field>
<input [formControl]="formControls[i]" ngDefaultControl matInput placeholder={{field.field_name}} value={{field.notes}}>
</mat-form-field>
</div>