I am not sure based on what you said "Writing in MATLAB function block makes it easier to read and also to edit in future". The prime reason for wide usage and popularity of Model based design using Simulink is that it makes algorithms easier to read, debug, modify and maintain commonality. So using simulink blocks definitely has an edge over writing equations manually. However, in my applications, I have found that many Simulink blocks like switch, if-else etc create problems during autocode generation. Simple blocks like "divide" are not robust to handle situations like "divide by zero" condition and can cause havoc in safety critical applications. Using your own mathematical equation gives you a lot of flexibility to add tolerances and robustness.
So all in all both ways have their own plus and minus. I would recommend you to pick a method based on your application and judgement.