矩阵可以作为 Octave 中的参数传递吗?

Can Matrices be passed as arguments in Octave?

我正在 Octave 中实现成本函数的非矢量化形式。这是我的 .m 文件

中的代码
function computeCost(X, y, theta)
sigma=0;
theta0 = 0;
m = length(y);

for i = 1:m
sigma = sigma+ theta*X(i)-y(i);
end;

J = ((sigma)^2)/2*m;

end;

我的八度代码是:

>> X= [1,1; 1,2; 1,3; 1,4;];
>> y= [2;4;6;8];
>> J = computeCost(X, y, 0.5);

其中 Xy 是矩阵。但是,我在我的 CLI Window:

上得到了这个输出
Error: computeCost(X, y, 0.5) undefined near line 1, column 5

我检查了我的代码,没有明显的问题。是因为Octave不接受矩阵作为其函数的参数吗?

您的问题的答案显然是肯定的:MATLAB 是 Matrix laboratory 的缩写。 Octave 和 Matlab 是专门为便于处理矩阵而设计的。

您的代码中的问题是:您的函数定义不完整。您尚未将 J 定义为 return 值。您看到的错误消息有点误导,因为它应该将第 10 列列为错误位置。当您将代码的第一行更改为

function J = computeCost(X, y, theta)

它将按预期工作并输出值 648