MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
Asked by Josep on 22 Aug 2014

I would like to know why I am obtaining as a result in this code, a matrix (15x1) and not a number. I am computing a test statistics equation that involves matrices products, so I am multiplying this matrix sizes:

((1x15)*(15x15)*(15x1))X((1x15)*(15x15)*(15x1))^2

I guess I am supposed to achieve a number, from this matrices products, but as I have said, MATLAB returns me as a solution of this equation a 15x1 matrix. Otherwise, at the end I have put the command size(T), to know the matrix size of T, and it returns me that is a 1x1 matrix (a number). Does anybody know why this two things doesn't match?

Following, here is my MATLAB code attached if you want to take a look at it

*No products are associated with this question.*

Answer by Star Strider on 22 Aug 2014

Accepted answer

It is difficult to read your code and I can’t run it. I ran a simulation of the matrix operation you describe, and got a scalar result as expected.

I suggest you check the sizes of the matrices in your equation. One of your vectors may actually be a matrix.

Show 6 older comments

Star Strider on 22 Aug 2014

It makes the code simpler and faster to divide scalars using `‘/’` than `inv`.

I avoid `inv` where possible because the `‘\’` operator is a much more efficient and computationally stable method of multiplying by `inv`, although sometimes it is unavoidable. Here, `inv` on the first term (a scalar) is the the same as `1/(Fk(:,j)'*inv(V)*Fk(:,j))`, so it makes sense to compute it as a scalar.

## 1 Comment

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/151949#comment_233120

The attached code also requires .xlsx workbooks, which were not attached. Attach the workbooks if you want us to try the code.