how to find data points of function passed through a distorted "pipe"?
Show older comments
This is not going to be your ordinary question, but hopefully somebody can assist me.
I want to take a function of data points, for instance a random set of points ("rnpi" in my code), and fit it to an upper and lower bounding function, such as a pair of sine waves (AS1 and AS2 in my code). The data point locations will be distorted by the waves, so that a straight line will come out curvy, etc. I am including a diagram showing what I want. How do I do this?

iP = [0, 88];
iB = [30, 74];
npi = 200; % SHOULD BE EQUAL TO LENGTH OF RANDOM PATTERN BELOW
aa1 = iP(1); % MIN OF RANGE
aa2 = iP(2); % MAX OF RANGE
ab1 = iB(1); % MIN OF RANGE
ab2 = iB(2); % MAX OF RANGE
nz1 = 0:pi/npi:4*pi;
nz2 = pi + (0:pi/npi:4*pi);
nr1 = 3/2; % NUMBER OF REPEATS /2
nr2 = 5/2; % NUMBER OF REPEATS /2
AS1 = (1 + cos(pi + nz1*nr1))/2; % 0-1
AS1 = aa1 + (ab1 * AS1); % aa1-ab1
AS2 = (1 + cos((pi*nr2)-(nz2*nr2)))/2; % 0-1
AS2 = ab2 + ((aa2-ab2) * AS2); % ab1-ab2
plot(AS1)
hold on
plot(AS2)
hold off
% NOW TEST WITH A RANDOM PATTERN
rnpi = round(88 * rand(npi,1));
% THE REST GOES HERE.....................
Accepted Answer
More Answers (0)
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!