The error you're encountering with the "mkpp" function is due to a mismatch between the number of polynomial pieces you're trying to create and the dimensions of the coefficients you are providing. The mkpp function is used to create piecewise polynomials, and it requires the number of coefficients to match the number of pieces specified.
To resolve the issue refer to the following key points:
- You need to provide a coefficient matrix that matches the number of intervals defined by "breaks". If "breaks" has n elements, you will have n-1 polynomial pieces, and thus need n-1 rows of coefficients.
- You need to define a polynomial representation for the image data.
Below is the sample code for defining "breaks" and polynomial representation for "mkpp" function:
% Define breakpoints for 3 intervals
breaks = [70, 80, 90, 100];
% Define coefficients for each polynomial piece
% Let's assume we want linear polynomials for simplicity
% Each row represents a polynomial: ax + b
% For simplicity, let's use random coefficients
coeffs = [1, 2; % Polynomial for interval [70, 80]
3, 4; % Polynomial for interval [80, 90]
5, 6]; % Polynomial for interval [90, 100]
% Create the piecewise polynomial
pp = mkpp(breaks, coeffs);
% Evaluate the piecewise polynomial at some points
x = linspace(70, 100, 100);
y = ppval(pp, x);
% Plot the piecewise polynomial
figure;
plot(x, y);
title('Piecewise Polynomial');
xlabel('x');
ylabel('y');
For better understanding of "mkpp" function and "breaks" in mkpp refer to the following documentation.
Hope this helps!