How do I use regress function with 6 input variables?
8 views (last 30 days)
Show older comments
Marc Gironella
on 6 Nov 2020
Edited: Walter Roberson
on 6 Nov 2020
Hi,
I have 6 input variable in my function, following the example by matlab i did the next code:
y=A(1:38,:);
v=A(39:76,:);
d=A(77:114,:);
vi=A(115:152,:);
v2=v.^2;
v3=v.^3;
v4=v.^4;
X = [ones(size(v)) v2 v3 v4 d vi];
b = regress(y,X);
y is a matrix 38*25 and X 38*150
but, i have the next error:
Y must be a vector and must have the same number of rows as X.
I don't know how do column vectors... Anybody knows?
I see that rows of X have to be the number of elements of matrix y.
Thanks.
0 Comments
Accepted Answer
Walter Roberson
on 6 Nov 2020
You cannot do that with regress(). regress() requires that y be a vector of target responses, one response for each row of x. Each row of x is a multi-dimensional point that has (conceptually) been put through a function that produces a scalar --
and y must be the result.
If your 38*25 y is conceptually the result of putting the input points through 25 different functions, then you need to loop over the columns of y.
2 Comments
Walter Roberson
on 6 Nov 2020
Edited: Walter Roberson
on 6 Nov 2020
a0_6 = [v(:).^0, v(:).^1, v(:).^2, v(:).^3, v(:).^4, d(:), vi(:)] \ y(:);
More Answers (0)
See Also
Categories
Find more on Linear Regression 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!