??? Improper assignment with rectangular empty matrix.
Show older comments
I'm doing my report. Matlab is used to solve the question. My code like this:
function y=STFT(x,seg,step);
[Lx chan]=size(x);
maxi=(Lx-seg)/step;
for i=1:maxi;
X=x(1+(i-1)*step:seg+(i-1));
Z= X*step;
f=fft(Z);
P=f.*conj(f);
y(:,i)=P;
end
However, it show error exist at "y(:,i)=P; ". May i know how to solve it?
Besides that, is that other formula can i replace "X=x(1+(i-1)*step:seg+(i-1));"?
Hope can get the answer by today as my code have to submit tomorrow.
Thank you.
Answers (1)
David Young
on 3 Dec 2011
I suspect your problem is that this line:
X=x(1+(i-1)*step:seg+(i-1));
should read
X=x(1+(i-1):step:seg+(i-1));
4 Comments
Goh
on 3 Dec 2011
David Young
on 3 Dec 2011
If the size of X is computed incorrectly, that could cause an assignment error when you try to assign P to a column of y.
Goh
on 3 Dec 2011
David Young
on 5 Dec 2011
It depends what the code is intended to do. It's hard to fix code without having a specification for the computation - more details of what you are aiming at would help.
By the way, I see that in your comment you show your original line of code, not my correction. Is that because the correction does not work?
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!