MATLAB: How to create a function from a script

curve fittingfunctionmatlab functionscript

hello, could anyone help with transforming this code into a matfile function so i can apply for different kind of data in my script.
y = drying_rate_1;
x = Zeit(~isnan(y));
y = y(~isnan(y));
[p,err] = polyfit(x,y,1);
fit_orig = polyval(p,x);
y_tilde = y - fit_orig;
quants = quantile(y_tilde, 100);
indices = [];
for i = 1:length(y_tilde)
if((y_tilde(i) > quants(2)) && (y_tilde(i) < quants(end - 1)))
indices = [indices; i];
end
end
x_filter = x(indices);
y_filter = y(indices);
[p,err] = polyfit(x_filter,y_filter,1);
y_fit = polyval(p,x_filter);
figure(3);
plot(x_filter, y_filter, x_filter, y_fit)

Best Answer

Is this? Pass the different input arguments (y=drying_rate_1) to the function, as a result you will get the different plots as per y data.
function test1(y)
x = Zeit(~isnan(y));
y = y(~isnan(y));
[p,err] = polyfit(x,y,1);
fit_orig = polyval(p,x);
y_tilde = y - fit_orig;
quants = quantile(y_tilde, 100);
indices = [];
for i = 1:length(y_tilde)
if((y_tilde(i) > quants(2)) && (y_tilde(i) < quants(end - 1)))
indices = [indices; i];
end
end
x_filter = x(indices);
y_filter = y(indices);
[p,err] = polyfit(x_filter,y_filter,1);
y_fit = polyval(p,x_filter);
figure(3);
plot(x_filter, y_filter, x_filter, y_fit)
end