I have a set of data which I generate using the following code:
x = linspace(-10, 10, 20);
slope = 1.5;
intercept = -1;
noiseAmplitude = 15;
y = slope .* x + intercept + noiseAmplitude * rand(1, length(x));
I want to generate a weighted linear least squares fit regression line for the above data points. I don't have the weights matrix so I can go with using the formula w(i) = 1/variance(i)^2 or any other default formula that a MATLAB function may use for generating the weights matrix. I don't know how to generate this matrix and make sure its diagonal and then fit a regression line in the data, is there a function in MATLAB which can help me achieve this?