integration with limits using an array

2 Ansichten (letzte 30 Tage)
James Keiser
James Keiser am 6 Okt. 2022
Kommentiert: the cyclist am 6 Okt. 2022
I am trying to integrate an equation and it works when I do not have limits but when I add them it does not work.
u_wake is a 1x56 array, rho is a constant and 0.07 and 0.13 are the limit boundaries.
This works when I use this:
Drag = rho*trapz(u_wake.*(21.15-u_wake));
But not when I do this:
Drag = rho*trapz(u_wake.*(21.15-u_wake),0.07,0.13);
  3 Kommentare
James Keiser
James Keiser am 6 Okt. 2022
Bearbeitet: James Keiser am 6 Okt. 2022
I cannot upload the data because it is 56 files and I am only allowed to upload 10. The data is 56 numbers all below 21.15 .
The error code is:
Error in wake_scan_sample (line 35)
Drag = rho*trapz(u_wake.*(21.15-u_wake),0.07,0.13);
the cyclist
the cyclist am 6 Okt. 2022
It's unclear to me why you can't just upload u_wake, which is just a 1x56 vector.
Also, that is not the complete error message, which I am guessing looks something more like ...
Error using matlab.internal.math.getdimarg
Dimension argument must be a positive integer scalar within indexing range.
Error in trapz>getDimArg (line 90)
dim = matlab.internal.math.getdimarg(dim);
Error in trapz (line 36)
dim = min(ndims(y)+1, getDimArg(dim));
Error in wake_scan_sample (line 35)
Drag = rho*trapz(u_wake.*(21.15-u_wake),0.07,0.13);

Melden Sie sich an, um zu kommentieren.

Antworten (1)

the cyclist
the cyclist am 6 Okt. 2022
Looking at the documentation for trapz, it doesn't seem like the syntax you are trying to use is valid.
  2 Kommentare
James Keiser
James Keiser am 6 Okt. 2022
What would recommend to fix the syntax?
the cyclist
the cyclist am 6 Okt. 2022
I assume that u_wake is the "y" value of the integral. Are 0.07 and 0.13 the endpoints of the "x" value? Are the values of u_wake at evenly spaced points along x? Then
Drag = rho*trapz(linspace(0.07,0.13,length(u_wake)),u_wake.*(21.15-u_wake));
should calculate what you want. For example,
% I just made up some u_wake and rho data
u_wake = sort(rand(1,56));
rho = 1;
Drag = rho*trapz(linspace(0.07,0.13,length(u_wake)),u_wake.*(21.15-u_wake))
Drag = 0.5618

Melden Sie sich an, um zu kommentieren.

Produkte


Version

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by