可以将矩阵作为参数传递给Octave吗?

时间:2017-11-15 18:41:18

标签: 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窗口中获取此输出:

Error: computeCost(X, y, 0.5) undefined near line 1, column 5

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

1 个答案:

答案 0 :(得分:1)

您的问题的答案显然是:MATLAB的名称是 Matrix实验室的缩写。 Octave和Matlab专门设计用于促进矩阵的处理。

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

function J = computeCost(X, y, theta)

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