Using trapz function to provide answers using loop
조회 수: 6 (최근 30일)
이전 댓글 표시
Hey,
I am trying to use the trapz function in a loop:
y_approx = zeros ([21 1]);
for i = 1:length(x)
y_approx = trapz(x(i),y)
end
It is providing me the 21 answers but they are incorrect. I think it is using the 21 y for each iteration of x. 21 y values for 1 x value, 21 y values for 2 x values etc. How do I alter the code to make it use the same number of y values as x values?
댓글 수: 0
채택된 답변
Chunru
2022년 9월 28일
% The way to use trapz
x= 1:20; % x
y = randn(20, 1); % y
ytrapz = trapz(x, y) % integral y dx
댓글 수: 4
Chunru
2022년 9월 28일
That is not really necessary since the looping code above is doing the trapz job in a more efficient way when you want the intermidiate results.
However, if you insisit, you can do the following (definitely not recommended):
x= 1:20; % x
y = randn(20, 1); % y
ytrapz = trapz(x, y) % integral y dx
yloop = zeros(size(x));
for i=2:length(x)
yloop(i) = yloop(i-1) + (y(i) + y(i-1))/2*(x(i)-x(i-1));
end
yloop([1:3 end-3:end])
% Not recommended:
yloop1 = zeros(size(x));
for i=2:length(x)
yloop1(i) = trapz(x(1:i), y(1:i));
end
yloop1([1:3 end-3:end])
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!