Sum of Least Squares

7 vues (au cours des 30 derniers jours)
Robert Demyanovich
Robert Demyanovich le 4 Oct 2021
Réponse apportée : John le 31 Juil 2023
I have a table, Check, where I would like to subtract column 6 from column 5 (to obtain a residual) and then square the residual. Then for all of the rows I would like to sum the squares of the residuals. Since MATLAB is supposed to be able to handle working with matrices and arrays much better than say visual basic, it seems I should be able to do this with one or two lines of codes. Maybe something like:
Check(:,7) = (Check(:,5) - Check(:,6))^2
SumofSquares = sum(Check(:,7)
  1 commentaire
Mathieu NOE
Mathieu NOE le 4 Oct 2021
hi
you can do in one line .
SumofSquares = sum((Check(:,5) - Check(:,6)).^2);

Connectez-vous pour commenter.

Réponse acceptée

Siddharth Bhutiya
Siddharth Bhutiya le 4 Oct 2021
You would have to use curly braces {} indexing in order to do this. Using () will give you a table and operations like subtraction, addition, etc are not defined for tables. Using {} would give you the contents of the table, which could then be used to do what you want.
>> Check = array2table(magic(6));
>> Check{:,7} = (Check{:,5} - Check{:,6}).^2;
>> SumOfSquares = sum(Check{:,7})
SumOfSquares =
156
  2 commentaires
Robert Demyanovich
Robert Demyanovich le 4 Oct 2021
Mathieu NOE's answer works. So it wasn't a table but a matrix (I guess)
Matt J
Matt J le 4 Oct 2021
@Robert Demyanovich But the answer given by @Siddharth Bhutiya is correct with respect to your stated question, so you should Accept-click it.

Connectez-vous pour commenter.

Plus de réponses (1)

John
John le 31 Juil 2023
xi = [1491214 17];
yi = [-3.97, 5.18, 20.43, 29.58, 35.68, 44.83];
n = length(xi);
A = [n sum(xi); sum(xi) sum(xi.^2)];
C = [sum(yi); sum(xi.*yi)];
Z = A\C;
a =Z(1);
b = Z(2);
fprintf ('y = %.5f + %.5f x \n',a,b)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by