First, don't post screenshots of the code. Simply copy/paste the code as text directly in your code (and then click the button). We can't copy text out of screenshots, it's more work for us to help you if we have to retype your code.
What Darova was pointing out is that X, y and theta are inputs of the function. If you redefine them inside the function, you're just throwing away these inputs wich is certainly not what you're meant to do. Since they're inputs you just use them as they are in your function. Note that this is not particular to matlab, it's the same in any programming language.
Secondly, if the X, y and theta inputs can be vectors or matrices, then almost certainly you should be using .* to do element-wise multiplication.
Also, using both X and x as variable names is begging for trouble, there's a great risk that you'll type one when you mean the other. I'd recommend using more meaningfull variable names.