我正在寫作業,並使用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',它在那裏是非法的。 –