Setting array elements to zero, the best way
이전 댓글 표시
Hello all,
I'm writing a for loop with a large number of iterations in it. And at the end of each itaration, I have to set a large array elements to zero. I can do it in the following way:
for i=1:1:LARGE_NUMBER
array = zeros(1, ANOTHER_LARGE_NUMBER);
% do stuff here with the now zero array
end
However, it looks like to me that this will allocate the memory over and over again at each iteration, which will be a huge performance hit due to the large number of iterations. I can also do this:
array = zeros(1, ANOTHER_LARGE_NUMBER);
for i=1:1:LARGE_NUMBER
array(:) = 0;
% do stuff here with the now zero array
end
But I'm not sure how this is implemented in MATLAB. Is this the most efficient way of making everything zero in MATLAB?
For instance, it's possible to do the following in C language:
memset(array, 0, sizeof(int) * ANOTHER_LARGE_NUMBER);
Which will efficiently set all values to zero. Is there any equivalent efficient method to do the same in MATLAB?
Any advice will be appreciated.
댓글 수: 2
KSSV
2019년 2월 5일
Have a look on Sparse
madhan ravi
2019년 2월 5일
But according to the preallocation all the elements are zeros right? Why do you have to do
array(:) = 0; %?
채택된 답변
추가 답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!