crea uno script che dati dieci punti in ordine crescente riesce a creare una curva interpolando linearmente e calcolando almeno 3 punti tra un punto e il successivo in matlab

main.m
% Dati dieci punti in ordine crescente
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
y = [10, 12, 15, 18, 20, 22, 23, 25, 28, 30];

% Creazione di un vettore con più punti interpolati tra i punti di partenza
new_x = [];
new_y = [];

for i = 1:length(x)-1
    % Calcolo del passo tra i punti
    step = (x(i+1) - x(i))/4;
    
    % Calcolo dei punti intermedi
    for j = 0:3
        new_x = [new_x, x(i) + step*j];
        new_y = [new_y, y(i) + (y(i+1)-y(i))*(step*j)/(x(i+1)-x(i))];
    end
end

% Plot con i punti originali e quelli interpolati
plot(x, y, 'o', new_x, new_y, '-');
legend('Punti originali', 'Punti interpolati');
624 chars
23 lines

This script takes ten points in ascending order, then interpolates linearly to calculate at least 3 additional points between each pair of consecutive points. The script then plots the original points along with the interpolated points.

gistlibby LogSnag