I'm trying to understand the difference between the two, and when it would be advisable to use one over the other.
A datamart is a whole database: generally like a simpler data warehouse in that it is usually the source for reporting or analysis. It is usually the end point of ETL processes pulling and aggregating data from multiple sources.
A materialised view is a stored query. It is 'materialised' in the sense that some aspect of it will be permanently stored, as opposed to an ordinary view which is evaluated on the fly. Often this is in order to apply indexes to a view: the view has to be schema bound to the underlying data, and updates to the underlying data will cause the materialised view's indexes to be updated so they're ready ahead of time before the view is called.
So really, the question of which to use doesn't make sense: they're completely different things.