Is it possible to design noncausal filters in Matlab?
The short answer is: yes, of course it's possible to design non-causal filters. Consider a simple first order IIR filter:

$$y[n]=ay[n-1]+bx[n]\tag{1}$$

If implemented in the way as indicated in Eq. (1), this filter is causal. It is also stable if $|a|&lt;1$. Now rewrite (1) as

$$y[n-1]=\frac{1}{a}y[n]-\frac{b}{a}x[n]\tag{2}$$

Implemented in this way, you compute $y[n-1]$ from the future samples $y[n]$ and $x[n]$, so the system is anti-causal. Note that it is stable if $|a|&gt;1$. Similar considerations apply to higher-order filters.

One way of realizing non-causal IIR filters is implemented in Matlab's filtfilt function. How this works is described in this answer.

Non-causal FIR filters can always be implemented by appropriate buffering of the input signal and delaying the output signal.