I think this is imposible. The computation time depends also how much the program will be parallelized by matlab, the cache memories, RAM read/write speed (not only the frequency) for instance.
There is no general answer. However you will certainly get some milage by considering two things. First, how much recursion/iteration is used by the algorithm. Does your loop run N times, N log N, N*N, etc... Parallelization (as pointed out by Maxime) needs to be fairly predictable across machines to have any hope of doing this, and so you need to work through your algorithm to understand which parts may be running sequentially or not and on which machines....
Second, how much storage is needed for your data. If the active memory of whatever system you are using is enough for your project then you get an estimate from looking at the number of operations and the clock speed. MATLAB has some additional administrative cost but this will be low if your work is using a static amount of memory. If your system needs to page memory or mix live and external storage, then the calculations become complex. Cacheing advantages can be statistically predictable over the long run in some situations but not others.
Note that, in general, halting problem (quick explanation here https://en.wikipedia.org/wiki/Halting_problem) is undecidable over Turing machines. So, in general, your problem is undecidable too. Anyway, knowing x (execution time in some machine) you can make useful approximations of the running time in any "similar" computer with different CPU-memory configuration.
You cant make a calculation on that problem because the scheduler of the machines OS might not give MathLab the same priority. It might not even run in the same time on the same machine. But you can make an aprokcimation based on the relative difference in speed on the compared machines.