我正在尝试创建一个简单的线性回归模型。A.CSV包含8列。VAR1月陶式小时is_holiday t负载日期。我在x =一个方面遇到了一个错误...它说了类型表的输入参数的不确定的UNICTION时间。
T = readtable('a.csv')
x1 = T(:, 6);
x2 = T(:,3);
y = T(:,7);
X = [ones(size(x1)) x1 x2 x1.*x2];
b = regress(y,X)
当您将索引的表切成索引时,在MATLAB中,您可以获得另一个表,但是使用较少数量的行或列...因此,在代码的这一部分中:
x1 .* x2
您正在尝试将两个表乘在一起。
如果您从工作区窗口打开T
变量,则应注意该表定义每列的一个标头名,例如Var1
,Var2
,... VarN
(与您的第一个CSV行值相对应,如果定义,则对应如上所述)。如果要使用桌子的基础强键矢量,则必须致电:
T.VarX
让我们假设您的x1
对应于T.Var1
,x2
对T.Var2
和您的y
参考T.Var3
,然后:
X = [ones(size(x1)) T.Var1 T.Var2 (T.Var1 .* T.Var2)];
% ...
b = regress(T.Var3,X)
这样,您甚至不需要切片。