Probably the more modern method would be to create a class or several and pass objects around. To be honest I have never done that myself, and instead use struct or cell array or table objects.
Way Back When, when I was studying software design, the books emphasized that you should beware of "coincidental" bundling of data structures. That happens when you put multiple data items into one data structure not because they have any meaningful relationship to each other, but just because they both happen to be needed by some routine.
The books also emphasized separation of "control" variables from "data" variables, but I don't think I have consciously paid attention to that for decades. Especially in MATLAB, where "control" information such as masks might well be arithmetically multiplied by data