我正在写作业,并使用Octave遇到此错误。它不会影响我的解决方案的功能,但我很好奇为什么会发出这个警告。在等尺寸矩阵上应用'自动广播操作'
% X is column vector, p is max degree of polynom
% example:
% X = [1;2;3;4], p = 3
% X_poly = [1,1,1; 2,4,8; 3,9,27; 4,16,64]
function [X_poly] = polyFeatures(X, p)
powers = ones(numel(X),1) * linspace(1,p,p);
X_poly = X .^ powers;
end
问候,
汤姆
那么我可以使用bsxfun,但为了锻炼,我想自己实现这种行为。 唯一需要让我的代码工作的东西就是转换X. (1,p,p); linspace(1,p,p); Xs = X * ones(1,p); X_poly = Xs^powers; 非常感谢;) –
“我认为它应该只是一个错误,但八度显然是试图找出你的意思,而不是你写的,但然后给你一个警告,这是猜测”。这不是原因。 Octave语言的一部分是自动广播(受NumPy启发),所以你在这些情况下写的是*广播。警告的原因是这是一项新功能,可能让人感到意外。这些类型的警告通常在2次发布后被删除。 – carandraug
@carandraug:好的,这个问题也被标记为'matlab',它在那里是非法的。 –