??? 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
David Young 2011년 12월 3일

0 개 추천

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
Goh 2011년 12월 3일
but matlab there show error at y(:,i)=P. Why is it??
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
Goh 2011년 12월 3일
i see. For the line
"X=x(1+(i-1)*step:seg+(i-1));
Z= X*step;"
is that got other way to write this formula?? Because what i posted is sample answer from lecturer, we need to change it. Any idea?
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에서 Matrix Indexing에 대해 자세히 알아보기

태그

질문:

Goh
2011년 12월 3일

Community Treasure Hunt

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

Start Hunting!

Translated by