Using trapz function to provide answers using loop
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Akzeptierte Antwort
Chunru
am 28 Sep. 2022
% The way to use trapz
x= 1:20; % x
y = randn(20, 1); % y
ytrapz = trapz(x, y) % integral y dx
4 Kommentare
Chunru
am 28 Sep. 2022
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])
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Numerical Integration and Differentiation finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!