isfinite is what you want to check whether something is an “ordinary” floating-point number (as opposed to ±Inf or NaN). (If you can’t use isfinite, how do you plan to use isnan?)
You could always call isfinite on the fields of your struct, or define a new isfinite method that does this for you.