You've probably reached a point where alpha is outside of the range 20...1200. In that case your function SW(alpha) returns a NaN, which is NOT an array, so Ca(alpha), that tries to get the first element of SW(alpha) runs into this problem.
Note that it is not necessary to have SW(alpha) return 1-element vectors. I suspect you've typed square brackets around the expressions inside SW(alpha). You should never do that unless you explicitly want to produce a vector.
I suggest you change SW(alpha) to NOT use square brackets, and omit the transpose operator, like this:

Then you're rid of the 'this should be a vector' error. In return you may have to deal with the fact that you are running into a NaN, which will cause NaN's to appear in the results of the Theta.at4 function.
Success!
Luc