Warning: Rank deficient, rank = 1, tol = 1.324612e-01.
19 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I'm trying to code a linear regression model using the following as a fuction script...
function [R,m,b] = ecregression(x,y)
x = x';
y = y';
format long
X = [ones(length(x),1) x];
b = X\y;
R = corr(x,y);
m = b(2);
b = b(1);
end
When I try and run this in my plot window with the code...
[R2, m2, b2] = ecregression(Y, season_avg2);
plot(Y, (m2.*Y)+b2, 'Color', 'k')
I get the error message...
Warning: Rank deficient, rank = 1, tol = 1.324612e-01.
> In ecregression (line 8)
In Extra_Credit (line 207)
(Line 207 is [R2, m2, b2] in the second code and line 8 is b = X\y)
How do I go about eliminating this error?
3 Commenti
KALYAN ACHARJYA
il 5 Dic 2019
What are the values of input arguments to pass to the function?
Y and season_avg2
Risposte (1)
Ridwan Alam
il 5 Dic 2019
Modificato: Ridwan Alam
il 5 Dic 2019
x = A\B solves the system of linear equations A*x = B. The matrices A and B must have the same number of rows. MATLAB® displays a warning message if A is badly scaled or nearly singular, but performs the calculation regardless.
In your case, A=X. column 1 of X is all 1's, making the rank of X = 1. That's what this warning is about. But I don't think that should prevent the calculation of b. Is it?
0 Commenti
Vedere anche
Categorie
Scopri di più su Linear and Nonlinear Regression in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!