Variable appears to change size on every loop iteration

조회 수: 127 (최근 30일)
saeed
saeed 2017년 1월 2일
편집: Walter Roberson 2023년 10월 17일
Hi to everybody i have a problem running these codes .its a linear segment price in power generation economic dispatch matlab code
in line 17 AND SOME OTHER LINES THIS ERROR COMES: Variable F appears to change size on every loop iteration I DONT KNOW HOW TO SOLVE THAT!
  댓글 수: 1
Walter Roberson
Walter Roberson 2018년 2월 6일
Note that this is a warning, not an error. It hints that your code is less efficient than it could be. For large arrays the cost of growing the array can end up being a major slowdown.

댓글을 달려면 로그인하십시오.

답변 (2개)

José-Luis
José-Luis 2017년 1월 2일
The solution is to pre-allocate:
Do
results = ones(1,10)
for ii = 1:10
results(ii) = ii;
end
instead of:
for ii = 1:10
begin_for_error(ii) = ii;
end
I didn't go through your code so you'll have to modify to fit your needs.
  댓글 수: 5
Kelvin Ling Chia Hiik
Kelvin Ling Chia Hiik 2020년 6월 28일
thanks Jose Luis

댓글을 달려면 로그인하십시오.


Sohan
Sohan 2023년 10월 17일
function waterfallspect(s, fs, spectsize, spectnum)
%WATERFALLSPECT Display spectrum of signal s as a 3-D plot.
% s - input signal, use wavload to load a WAV file
% fs - Sampling frequency (Hz).
% spectsize - FFT window size
% spectnum - number of windows to analyze
frequencies = [0:fs/spectsize:fs/2];
offset = floor((length(s)-spectsize)/spectnum);
for i=0:(spectnum-1)
start = i*offset;
A = abs(fft(s((1+start):(start+spectsize))));
magnitude(:,(i+1)) = A(1:spectnum/2+1);
end
waterfall(frequencies, 0:(spectnum-1), magnitude');
xlabel('frequency');
ylabel('time');
zlabel('magnitude');
  댓글 수: 1
Walter Roberson
Walter Roberson 2023년 10월 17일
편집: Walter Roberson 2023년 10월 17일
No, this would have the same warning as the original code, about a variable changing size in every iteration, so this code would not fix the problem that the original poster had.
Is there a reason you did not pre-allocate the matrix magnitude ?

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Spectral Measurements에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by