Joh*_*rto 5 matlab linear-regression
我无法理解回归在Matlab中是如何工作的.
假设我有2个阵列(X和Y),每个阵列都有相同的大小(假设它们每个都是1x10).根据我的理解,回归函数应该帮助我找到X和Y之间的关系(我想通过绘制的数据绘制最佳拟合线),然后给我斜率.当我在Matlab中尝试这个时,我得到一个错误,说2个变量有不同的行数....但是他们没有,是吗?
如果有人能帮助我理解函数及其参数是如何工作的,我会非常感激,只是为了让我进入基本水平.
以下是一些代码示例:
x = [1,2,3,4,5,6,7,8,9,10];
y = [1,2,3,4,5,6,7,8,9,10]; %defining the arrays, they are linearly related
X=[x ones(size(x,1),1)]; %adding the (necessary?) column of ones
regress(y,X) % using the regress function for a relationship
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
??? Error using ==> regress at 64
The number of rows in Y must equal the number of rows in X.
Run Code Online (Sandbox Code Playgroud)
我认为您以某种方式混淆了行与列(Matlab 使用列优先排序)。如果打印出两个输入y和X,您将立即看到它们是不同长度的行向量。仔细阅读帮助/文档regress\xe2\x80\x93 第一个输入必须是 N×1 列向量。第二个是 N×p 矩阵。因此,这样的事情可以工作:
x = 1:10;\ny = 1:10;\nX = [x; ones(1,length(x))];\nb = regress(y.\',X.\')\nRun Code Online (Sandbox Code Playgroud)\n