How to resolve the Error using ==> mtimes Inner matrix dimensions must agree?

% Magnitude spectrum computation (as column vectors)
MAG = abs( fft(frames,nfft,1) );
% Triangular filterbank with uniformly spaced filters on mel scale
H = trifbank( M, K, R, fs, hz2mel, mel2hz ); % size of H is M x K
% Filterbank application to unique part of the magnitude spectrum
FBE = H*MAG(1:K,:); % FBE( FBE<1.0 ) = 1.0; % apply mel floor
Error using ==> mtimes
Inner matrix dimensions must agree.
Error in ==> new at 41
FBE = H*MAG(1:K,:); % FBE( FBE<1.0 ) = 1.0; % apply mel floor

3 Comments

At the command line please give the command
dbstop if error
and then run your program again. When it stops at the error, please show
size(H)
size(MAG)
M
K
It shows the following: 23 2049
256 1534
M = 20 K =129
The code H*MAG(1:K,:) is assuming that the second dimension of H should be length K, but clearly it is not.
trifbank is not a built-in MATLAB routine. Did you download one of the implementations from the File Exchange? If so then you are going to have to debug why it is not returning matrices of width K.

Sign in to comment.

Answers (0)

Tags

Asked:

on 30 Mar 2013

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!