??? Improper assignment with rectangular empty matrix.
显示 更早的评论
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.
回答(1 个)
David Young
2011-12-3
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 个评论
Goh
2011-12-3
David Young
2011-12-3
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
2011-12-3
David Young
2011-12-5
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?
类别
在 帮助中心 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!