store the output of a for loop in an array
3 次查看(过去 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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!