我在八度音程中实现了成本函数的非向量化形式。这是我的.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);
其中X
和y
是矩阵。但是,我在CLI窗口中获取此输出:
Error: computeCost(X, y, 0.5) undefined near line 1, column 5
我检查了我的代码,没有明显的问题。是因为Octave不接受矩阵作为其函数的参数吗?
答案 0 :(得分:1)
您的问题的答案显然是:MATLAB的名称是 Matrix实验室的缩写。 Octave和Matlab专门设计用于促进矩阵的处理。
代码中的问题是:您的函数定义不完整。您尚未将J定义为返回值。您看到的错误消息有点误导,因为它应该将第10列声明为错误的位置。当您将代码的第一行更改为
时function J = computeCost(X, y, theta)
它将按预期工作并输出值648
。