Question
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.....................
Expert Answer
Prashant Kumar
PhD Expert
Answered Aug 24, 2026
A difficult question to answer, since so much is left to guess. And the vaguesness of your question suggests all you want is a result that looks qualitatively as you have drawn. Mathematics is not good at subjective things. Sorry.
But is is not difficult to do something that looks vaguely as you have drawn, as simply an interpolation between two curves.
ULim = [74 88]; LLim = [0 30]; XLim = [0 2*pi]; x = linspace(XLim(1),XLim(2)); UpperFcn = @(x) (cos(x)+1)/2*diff(ULim) + ULim(1); LowerFcn = @(x) (1-(cos(x))/2)*diff(LLim) + LLim(1); fplot(UpperFcn,XLim) hold on fplot(LowerFcn,XLim)
Now just create an interpolated function that trades off the two boundaries.
TFcn = @(x) (x-XLim(1))./diff(XLim); MidFcn = @(x) (1-TFcn(x)).*UpperFcn(x) + TFcn(x).*LowerFcn(x); fplot(MidFcn,XLim)
Again, totally subjective. Just a picture that looks vaguely like what you asked about.
100% Run Guarantee
3-Hour Fast-Track Delivery
Need a Custom Version or Complete Simulation for This Problem?
Our 500+ PhD engineers build, debug, and optimize working MATLAB scripts and Simulink (.slx) models tailored to your exact assignment rubrics with zero plagiarism.
Tested on MATLAB R2024b / R2026a
Turnitin 0% Plagiarism Report
Free 7-Day Revisions Guarantee
Have a different question? Ask here
Related matlab function Questions & Solutions
Browse All →
Explore similar technical troubleshooting questions and verified MATLAB solutions:
Ready-to-Run MATLAB & Simulink Projects
Browse All Projects →
