store the output of a for loop in an array
조회 수: 1 (최근 30일)
이전 댓글 표시
Hi everyone... I want to store the output of 'q' in an array from the following code:
F= @(x) (cos(x))./sqrt(1+sin(x));
for n=0:0.1:pi/2
q = quad(F,0,n)
end
I tried to use q(n) instead of q but it gives me an error. Thanks for your time and help!
댓글 수: 0
답변 (3개)
Oleg Komarov
2012년 5월 15일
I did not preallocate (up to you)
F = @(x) (cos(x))./sqrt(1+sin(x));
n = 0:0.1:pi/2;
for ii = 1:numel(n)
q(ii) = quad(F,0,n(ii))
end
You were not able to use q(n) directly because n in that case should indicate which position in q the result should be allocated to. There's no such a thing as position 0.1 and the counting reference starts from 1, thus no position 0 either.
Formally stating, an array can be indexed with positive integer values: 1,2,... etc
댓글 수: 0
Thomas
2012년 5월 15일
try
F= @(x) (cos(x))./sqrt(1+sin(x));
count=1;
for n=0:0.1:pi/2
q (count)= quad(F,0,n);
count=count+1;
end
q
댓글 수: 0
Andrei Bobrov
2012년 5월 15일
q = arrayfun(@(n)quad(@(x)cos(x)./sqrt(1+sin(x)),0,n),0:0.1:pi/2);
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!