How to plot a linear function?

15 views (last 30 days)
Jenni
Jenni on 7 Feb 2024
Commented: William Rose on 9 Feb 2024
Hey!
Here is my function and I am trying to plot a linear function in form:
y = b_0 + b_1x.
How could I plot this function using the result values b_0 and b_1?
Here is my function code called "sovittaja":
function [b, bci] = sovittaja(x,y,delta_y)
%%Helper variables:
s_1 = sum(1./(delta_y.^2));
s_2 = sum((x.*y)./(delta_y.^2));
s_3 = sum(x./(delta_y.^2));
s_4 = sum(y./(delta_y.^2));
s_5 = sum(x.^2./(delta_y.^2));
%%Defining D:
D = (s_1*s_5)-(s_3)^2;
%%Analyyttiset lausekkeet:
b_1 = (1/D)*((s_1)*(s_2)-(s_3)*(s_4));
b_0 = (1/D)*((s_5)*(s_4)-(s_3)*(s_2));
%%Margin of errors:
delta_b_1 = sqrt((1/D)*(s_1));
delta_b_0 = sqrt((1/D)*(s_5));
%%Indexs of matrix bci :
bci_11 = b_0 - delta_b_0;
bci_12 = b_1 - delta_b_1;
bci_21 = b_0 + delta_b_0;
bci_22 = b_1 + delta_b_1;
%% Return values:
b = [b_0, b_1];
bci = [bci_11,bci_12;bci_21,bci_22];
And here is what I want to do with the function "sovittaja":
clear all
close all
% Measurement:
i=[1,2,3,4,5]';
% Frequency:
x=[519,549,688,740,821]';
% Voltage:
y=[1.0,1.2,1.9,2.4,2.3]';
% Margin of Error:
delta_y=[0.15,0.40,0.20,0.30,0.10];
sovittaja(x,y,delta_y)
So, how could I plot my result to a linear function y = b_0 + b_1x?
And additional question: How could I do the same thing by using command fitlm?
Thank you for the help!
  2 Comments
John D'Errico
John D'Errico on 7 Feb 2024
Edited: John D'Errico on 7 Feb 2024
Why would you want to use fitlm to plot a line? It is not a tool that creates plots. So what are you asking? I think you want to know a tool that can fit a line through your points, using some given weights at those points. I am not entirely sure if the "margin of error" is a set of weights, or it is a set of hard constraints that the line is not allow to pass.
Plotting a line is easy enough, even trivial. Choose two points on the line. Plot them, connecting them with a line.
William Rose
William Rose on 7 Feb 2024
The fitlm help at https://www.mathworks.com/help/stats/fitlm.html is very nice. Read it, try the examples, and you will be good.

Sign in to comment.

Accepted Answer

William Rose
William Rose on 7 Feb 2024
Edited: William Rose on 8 Feb 2024
[edit: Fix typo: change "values at" to "values are"]
It looks like you want to plot measured data as well as the best-fit straight line.
The measured values are x and y. The predicted values are x and b(0)+b(1)*x.
Please see the instructions and examples here https://www.mathworks.com/help/matlab/ref/plot.html
plot(x,y,'r*',x,b(0)+b(1)*x,'--r');
It also seems like you might want error bars on your plot. If so, see the description and the examples here:
  2 Comments
Jenni
Jenni on 8 Feb 2024
Excellent, thank you for the helpful advice and the links!

Sign in to comment.

More Answers (0)

Categories

Find more on Biomedical Signal Processing in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!