## Getting "??? Error using ==> mtimes Inner matrix dimensions must agree" error

### Ruqayya (view profile)

on 7 Sep 2014
Latest activity Answered by Star Strider

### Star Strider (view profile)

on 7 Sep 2014
t0=0.1;
ts=0.0001;
fs=1/ts;
t= [0:ts:t0-ts]
m=sinc(100*t);
fc=250;
c=cos(2*3.14*fc*t);
u=m*c;

### Tags

Answer by Sagar Damle

### Sagar Damle (view profile)

on 7 Sep 2014

In the statement
u = m * c;
MATLAB tries for 'matrix multiplication'.Marix multiplication is possible when a matrix of dimension (m * n)[rows = m,columns = n] is multiplied with another matrix of dimension (n * p).The dimension of answer matrix will be (m * p).Or otherwise,one of two matrices in matrix multiplication should contain just a single value(scalar matrix). Here,neither 'm' nor 'c' is single-valued. Or if you want elementwise multiplication,you can use
u = m. * c;
N.B. : You can use inbuilt value for pi using 'pi'.
c=cos(2*pi*fc*t); ### Star Strider (view profile)

Answer by Star Strider

### Star Strider (view profile)

on 7 Sep 2014

Hi Ruqayya —
This is the line that is throwing the error:
u=m*c;
where both ‘m’ and ‘c’ are (1x1000) double vectors.
Two possibilities present themselves, since I don’t know what you want:
1. —> ‘u’ is intended to be a (1x1000) double vector as well, in which situation u=m.*c; (note the ‘.*’ indicating element-by-element multiplication as opposed to vector or matrix multiplication);
2. —> ‘u’ is intended to be a (1x1) double scalar, in which situation u=m*c'; (note the transpose operator (') after the c, keeping m as (1x1000) double row vector and creating c to a (1000x1) double column vector.
Your call as to what you want ‘u’ to be. One of these should work in your application. Neither of them will throw the error.