Matrix interference infinity loop

When you put a value to the counter, for example more than 15 and at a number of attempts 10000. the matrix interference in Loop indefinitely What is the reason for this and how can I fix the problem
code
m=15;
klp=0;
for i=1:m
klp=klp+1;
lp(klp)=top;
end
lp(klp)=top interference to infinity loop

回答(1 个)

Walter Roberson
Walter Roberson 2012-12-22
Are you sure it is an infinite loop, and not just very slow? You are not preallocating your output array, so every time you add more information to the array, MATLAB has to allocate a new block of memory just slightly larger, and copy the old array, then delete the old array -- for every iteration.

7 个评论

yes infinite loop so after 6 or more hours the out of memory appear to my matlab display LP =
Columns 1 through 11
15 8 0 0 0 0 0 0 0 0 0
Columns 12 through 15
0 0 0 0
LP =
Columns 1 through 11
10 11 0 0 0 0 0 0 0 0 0
Columns 12 through 15
0 0 0 0
LP =
Columns 1 through 11
2 1 0 0 0 0 0 0 0 0 0
Columns 12 through 15
and suddenly interference infinite loop like this
Columns 1 through 11
0 0 0 0 0 0 0 0 0 0 0
Columns 12 through 22
0 0 0 0 15 8 2 2 2 2 2
Columns 23 through 33
2 2 2 2 2 2 2 2 2 2 2
Columns 34 through 44
2 2 2 2 2 2 2 2 2 2 2
Columns 45 through 55
1 to 15 number of link of my network(topology) LP saved request for example 15 8 two link connect by one node
when the first number of LP = zero the interference infinity loop like second part with 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 8 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 22 2 222..........infint loop
You are getting an out of memory error, and then the display starts repeating the same thing over and over again?
You mention something about "number of attempts 10000". I do not see where that is in the code?
the code is very large about 400 line and the number of attempts in the main program that is call the function (where the problem) when number of attempts small (about 500 or 1000) the problem dont appear but when using 10000 the problem will appear
Does your code have a try/catch in it? If so then it might be catching the out-of-memory error instead of exiting.
Have you revised your code to pre-allocate the memory yet?
no my program code do not have try/catch in it how i can use it? and when i can put them (try / catch) in my program the problem just appear when i use large number of attempts (with same code and same condition) what is deference between large attempts and small(500 and 10000) attempt's in matlab with same program
difference(deference)

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by