필터 지우기
필터 지우기

Having Trouble With Preallocating

조회 수: 1 (최근 30일)
Bailey Smith
Bailey Smith 2018년 6월 18일
편집: Stephen23 2018년 6월 18일
When I run my code:
clear; clc;
tic
x=(0:pi/1000000:pi);
m=zeros(1000000);
y=sin(x);
n=1;
L=length(x);
while n<L
m(n,1)=x(n);
m(n,2)=(y(n+1)-y(n))/(x(n+1)-x(n));
n=n+1;
end
m(n,1)=x(n);
m(n,2)=NaN;
toc
I get an error stating: Error using zeros Requested 1000000x1000000 (7450.6GB) array exceeds maximum array size preference. Creation of arrays greater than this limit may take a long time and cause MATLAB to become unresponsive. See array size limit or preference panel for more information.
What should I do about this? I would like to keep the while loops in there and just preallocate if possible. Thanks!

채택된 답변

Stephen23
Stephen23 2018년 6월 18일
편집: Stephen23 2018년 6월 18일
m = zeros(1000000,2);
Although a better idea would be to preallocate with the exact required size:
L = numel(x);
m = zeros(L,2);

추가 답변 (0개)

카테고리

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

Community Treasure Hunt

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

Start Hunting!

Translated by