num = (1-r)*At(k,k)*x(k+1:m)+ r*At(k,end) - r*At(k,1:k-1)*x(1:k-1) - r*At(k,k+1:m)*x(k+1:m);
r is a scaar. At(k,k) is a scalar. At(k,end) is a scalar. x(k+1:m) is a column vector. So we have to conclude that (1-r)*At(k,k)*x(k+1:m) is a column vector.
At(k,1:k-1) is a row vector but it is being used with "*" against a column vector, so the result of the "*" is a scalar, so r*At(k,1:k-1)*x(1:k-1) is a scalar.
At(k,k+1:m) is a row vector, but it is being used with "*" against a column vector, so the result of the "*" is a scalar, so r*At(k,k+1:m)*x(k+1:m) is a scalar.
num is therefore column vector minus scalar minus scalar. That is going to give a column vector result.
Then in the next line,
r is a scalar, At(k,k) is a scalar, and we found from above that num is a column vector. r*num/At(k,k) must therefore be a column vector. But you are trying to store the column vector into a scalar location, x(k)
Best Answer