Best method to define a linear piece-wise function given limits and line equations?
조회 수: 20 (최근 30일)
이전 댓글 표시
I am writing a function(also new to matlab) that is fed the following:
1. the x limits of each piece
2. the slope and intercept values of each piece
3. the y values for which I am trying to find corresponding x values
How can I write a function that can take any number of pieces, and create a piece-wise function? I then would like to be able to feed it y values and return the corresponding x values. I currently can only write the function for a given number of pieces, not any number..?
My code thus far:
%%define the piecewise function
function x = peicewisehot(y,Hbreaks,slope)
%y; input from user
%Hbreaks; vertical breaks
%slope; slope of equation
%x = (y-b)/m
for i = 1:length(y)
if y(i) >= Hbreaks(1) & y(i) < Hbreaks(2)
x(i) = (y(i) - b(1))./slope(1);
elseif y(i) >= Hbreaks(2) & y(i) < Hbreaks(3)
x(i) = (y(i) - b(2))./slope(2);
else
x(i) = nan;
end
end
댓글 수: 0
채택된 답변
Walter Roberson
2012년 1월 2일
Please see the following hints:
Looks to me like you could use interp1() and ppval()
댓글 수: 3
Walter Roberson
2012년 1월 3일
yinterp1 = interp1(B, Hhotpt, 'linear', 'pp');
Notice the "u" is not passed, as you are not interpolating at specific points when you create the pp.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Systems of Nonlinear Equations에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!