error: 'y' undefined near line 8 column 12 error: called from computeCost at line 8 column 3
error: 'y' undefined near line 8 column 12
error: called from computeCost at line 8 column 3
Here is my code:
1;
function J = computeCost(X, y, theta)
%COMPUTECOST Compute cost for linear regression
% J = COMPUTECOST(X, y, theta) computes the cost of using theta as the
% parameter for linear regression to fit the data points in X and y
% Initialize some useful values
m = length(y); % number of training examples
% You need to return the following variables correctly
J = 0;
% ====================== YOUR CODE HERE ======================
% Instructions: Compute the cost of a particular choice of theta
% You should set J to the cost.
J = sum(( X * theta - y ) .^2 )/( 2 * m );
% =========================================================================
end
octave
add a comment |
error: 'y' undefined near line 8 column 12
error: called from computeCost at line 8 column 3
Here is my code:
1;
function J = computeCost(X, y, theta)
%COMPUTECOST Compute cost for linear regression
% J = COMPUTECOST(X, y, theta) computes the cost of using theta as the
% parameter for linear regression to fit the data points in X and y
% Initialize some useful values
m = length(y); % number of training examples
% You need to return the following variables correctly
J = 0;
% ====================== YOUR CODE HERE ======================
% Instructions: Compute the cost of a particular choice of theta
% You should set J to the cost.
J = sum(( X * theta - y ) .^2 )/( 2 * m );
% =========================================================================
end
octave
Please edit your post and clarify what your question is. You've given an error message and code, that does not make a question. Pleas see How to Ask.
– Cris Luengo
Nov 25 '18 at 8:58
1
This other question has the exact same problem as you do, there's an answer there: function in matlab- undefined input argument error
– Cris Luengo
Nov 25 '18 at 9:02
add a comment |
error: 'y' undefined near line 8 column 12
error: called from computeCost at line 8 column 3
Here is my code:
1;
function J = computeCost(X, y, theta)
%COMPUTECOST Compute cost for linear regression
% J = COMPUTECOST(X, y, theta) computes the cost of using theta as the
% parameter for linear regression to fit the data points in X and y
% Initialize some useful values
m = length(y); % number of training examples
% You need to return the following variables correctly
J = 0;
% ====================== YOUR CODE HERE ======================
% Instructions: Compute the cost of a particular choice of theta
% You should set J to the cost.
J = sum(( X * theta - y ) .^2 )/( 2 * m );
% =========================================================================
end
octave
error: 'y' undefined near line 8 column 12
error: called from computeCost at line 8 column 3
Here is my code:
1;
function J = computeCost(X, y, theta)
%COMPUTECOST Compute cost for linear regression
% J = COMPUTECOST(X, y, theta) computes the cost of using theta as the
% parameter for linear regression to fit the data points in X and y
% Initialize some useful values
m = length(y); % number of training examples
% You need to return the following variables correctly
J = 0;
% ====================== YOUR CODE HERE ======================
% Instructions: Compute the cost of a particular choice of theta
% You should set J to the cost.
J = sum(( X * theta - y ) .^2 )/( 2 * m );
% =========================================================================
end
octave
octave
edited Nov 25 '18 at 8:58
Cris Luengo
21.5k52251
21.5k52251
asked Nov 25 '18 at 8:35
Manu BejugamManu Bejugam
11
11
Please edit your post and clarify what your question is. You've given an error message and code, that does not make a question. Pleas see How to Ask.
– Cris Luengo
Nov 25 '18 at 8:58
1
This other question has the exact same problem as you do, there's an answer there: function in matlab- undefined input argument error
– Cris Luengo
Nov 25 '18 at 9:02
add a comment |
Please edit your post and clarify what your question is. You've given an error message and code, that does not make a question. Pleas see How to Ask.
– Cris Luengo
Nov 25 '18 at 8:58
1
This other question has the exact same problem as you do, there's an answer there: function in matlab- undefined input argument error
– Cris Luengo
Nov 25 '18 at 9:02
Please edit your post and clarify what your question is. You've given an error message and code, that does not make a question. Pleas see How to Ask.
– Cris Luengo
Nov 25 '18 at 8:58
Please edit your post and clarify what your question is. You've given an error message and code, that does not make a question. Pleas see How to Ask.
– Cris Luengo
Nov 25 '18 at 8:58
1
1
This other question has the exact same problem as you do, there's an answer there: function in matlab- undefined input argument error
– Cris Luengo
Nov 25 '18 at 9:02
This other question has the exact same problem as you do, there's an answer there: function in matlab- undefined input argument error
– Cris Luengo
Nov 25 '18 at 9:02
add a comment |
1 Answer
1
active
oldest
votes
There are two things happening here. First you are defining your function dynamically as opposed to in its own file; not sure why you would prefer that.
Second, after having defined this computeCost
function, you are calling it from a context where you did not pass a y
argument (or presumably, you didn't pass any arguments to it, and y
happens to be the first one detected as missing inside the function).
Since this is a cost function and your code looks suspiciously like code from Andrew Ng's Machine Learning course on Coursera, I am going to go out on a limb here and guess that you called computeCost
from something else that was supposed to use it as a cost function to be optimised, e.g. fminunc
. Typically functions like fminunc
expect a function handle as an argument, but they expect a very specific function handle too. If you look at the help
of fminunc
, it states that:
FCN should accept a vector (array) defining the unknown variables,
and return the objective function value, optionally with gradient.
Therefore, if you want to pass a function that is to be computed with three arguments, you need to "wrap" it into your own handle, which you can define on the spot, e.g. @(x) computeCost(x, y, t)
(assuming 'y' and 't' exist already).
So, I'm guessing that instead of calling fminunc like so: fminunc( @(x) computeCost(x, y, t)
,
you probably called it like so: fminunc( @computeCost )
or even like so: fminunc( computeCost )
(which evaluates the function first, rather than pass a function handle as an argument).
Basically, go back to the code given to you by coursera, or read the notes carefully. You're calling things the wrong way.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53465874%2ferror-y-undefined-near-line-8-column-12-error-called-from-computecost-at-lin%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
There are two things happening here. First you are defining your function dynamically as opposed to in its own file; not sure why you would prefer that.
Second, after having defined this computeCost
function, you are calling it from a context where you did not pass a y
argument (or presumably, you didn't pass any arguments to it, and y
happens to be the first one detected as missing inside the function).
Since this is a cost function and your code looks suspiciously like code from Andrew Ng's Machine Learning course on Coursera, I am going to go out on a limb here and guess that you called computeCost
from something else that was supposed to use it as a cost function to be optimised, e.g. fminunc
. Typically functions like fminunc
expect a function handle as an argument, but they expect a very specific function handle too. If you look at the help
of fminunc
, it states that:
FCN should accept a vector (array) defining the unknown variables,
and return the objective function value, optionally with gradient.
Therefore, if you want to pass a function that is to be computed with three arguments, you need to "wrap" it into your own handle, which you can define on the spot, e.g. @(x) computeCost(x, y, t)
(assuming 'y' and 't' exist already).
So, I'm guessing that instead of calling fminunc like so: fminunc( @(x) computeCost(x, y, t)
,
you probably called it like so: fminunc( @computeCost )
or even like so: fminunc( computeCost )
(which evaluates the function first, rather than pass a function handle as an argument).
Basically, go back to the code given to you by coursera, or read the notes carefully. You're calling things the wrong way.
add a comment |
There are two things happening here. First you are defining your function dynamically as opposed to in its own file; not sure why you would prefer that.
Second, after having defined this computeCost
function, you are calling it from a context where you did not pass a y
argument (or presumably, you didn't pass any arguments to it, and y
happens to be the first one detected as missing inside the function).
Since this is a cost function and your code looks suspiciously like code from Andrew Ng's Machine Learning course on Coursera, I am going to go out on a limb here and guess that you called computeCost
from something else that was supposed to use it as a cost function to be optimised, e.g. fminunc
. Typically functions like fminunc
expect a function handle as an argument, but they expect a very specific function handle too. If you look at the help
of fminunc
, it states that:
FCN should accept a vector (array) defining the unknown variables,
and return the objective function value, optionally with gradient.
Therefore, if you want to pass a function that is to be computed with three arguments, you need to "wrap" it into your own handle, which you can define on the spot, e.g. @(x) computeCost(x, y, t)
(assuming 'y' and 't' exist already).
So, I'm guessing that instead of calling fminunc like so: fminunc( @(x) computeCost(x, y, t)
,
you probably called it like so: fminunc( @computeCost )
or even like so: fminunc( computeCost )
(which evaluates the function first, rather than pass a function handle as an argument).
Basically, go back to the code given to you by coursera, or read the notes carefully. You're calling things the wrong way.
add a comment |
There are two things happening here. First you are defining your function dynamically as opposed to in its own file; not sure why you would prefer that.
Second, after having defined this computeCost
function, you are calling it from a context where you did not pass a y
argument (or presumably, you didn't pass any arguments to it, and y
happens to be the first one detected as missing inside the function).
Since this is a cost function and your code looks suspiciously like code from Andrew Ng's Machine Learning course on Coursera, I am going to go out on a limb here and guess that you called computeCost
from something else that was supposed to use it as a cost function to be optimised, e.g. fminunc
. Typically functions like fminunc
expect a function handle as an argument, but they expect a very specific function handle too. If you look at the help
of fminunc
, it states that:
FCN should accept a vector (array) defining the unknown variables,
and return the objective function value, optionally with gradient.
Therefore, if you want to pass a function that is to be computed with three arguments, you need to "wrap" it into your own handle, which you can define on the spot, e.g. @(x) computeCost(x, y, t)
(assuming 'y' and 't' exist already).
So, I'm guessing that instead of calling fminunc like so: fminunc( @(x) computeCost(x, y, t)
,
you probably called it like so: fminunc( @computeCost )
or even like so: fminunc( computeCost )
(which evaluates the function first, rather than pass a function handle as an argument).
Basically, go back to the code given to you by coursera, or read the notes carefully. You're calling things the wrong way.
There are two things happening here. First you are defining your function dynamically as opposed to in its own file; not sure why you would prefer that.
Second, after having defined this computeCost
function, you are calling it from a context where you did not pass a y
argument (or presumably, you didn't pass any arguments to it, and y
happens to be the first one detected as missing inside the function).
Since this is a cost function and your code looks suspiciously like code from Andrew Ng's Machine Learning course on Coursera, I am going to go out on a limb here and guess that you called computeCost
from something else that was supposed to use it as a cost function to be optimised, e.g. fminunc
. Typically functions like fminunc
expect a function handle as an argument, but they expect a very specific function handle too. If you look at the help
of fminunc
, it states that:
FCN should accept a vector (array) defining the unknown variables,
and return the objective function value, optionally with gradient.
Therefore, if you want to pass a function that is to be computed with three arguments, you need to "wrap" it into your own handle, which you can define on the spot, e.g. @(x) computeCost(x, y, t)
(assuming 'y' and 't' exist already).
So, I'm guessing that instead of calling fminunc like so: fminunc( @(x) computeCost(x, y, t)
,
you probably called it like so: fminunc( @computeCost )
or even like so: fminunc( computeCost )
(which evaluates the function first, rather than pass a function handle as an argument).
Basically, go back to the code given to you by coursera, or read the notes carefully. You're calling things the wrong way.
answered Nov 25 '18 at 9:37
Tasos PapastylianouTasos Papastylianou
11.1k11133
11.1k11133
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53465874%2ferror-y-undefined-near-line-8-column-12-error-called-from-computecost-at-lin%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Please edit your post and clarify what your question is. You've given an error message and code, that does not make a question. Pleas see How to Ask.
– Cris Luengo
Nov 25 '18 at 8:58
1
This other question has the exact same problem as you do, there's an answer there: function in matlab- undefined input argument error
– Cris Luengo
Nov 25 '18 at 9:02