How to fix broken function code?

2 visualizaciones (últimos 30 días)
Jenni
Jenni el 7 de Feb. de 2024
Comentada: Jenni el 7 de Feb. de 2024
Hey! Here is my function and I am trying to estimate the values of b_1 and b_0, but when I am running my code, I get following messages:
"Error using/
Matrix dimensions must agree."
"Error in function sovittaja (line 5):
s_2 = sum((x.*y)/(delta_y.^2));"
"Error in (line 16):
sovittaja(f,v,delta_v).
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)
What should I do to make the code work? And how could I plot these?
Thank you for the help!

Respuesta aceptada

Stephen23
Stephen23 el 7 de Feb. de 2024
Editada: Stephen23 el 7 de Feb. de 2024
Use array division here:
s_2 = sum((x.*y)./(delta_y.^2));
% ^^
and here:
s_5 = sum(x.^2./(delta_y.^2));
% ^^
and possibly in some other locations: check all division and power operations!
Learn the difference:
As a rule of thumb: if you are not doing linear algebra then use array operations.
  1 comentario
Jenni
Jenni el 7 de Feb. de 2024
Great thank you, the code is working now!

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by