# How to compute Cost function for linear regression

146 views (last 30 days)

Show older comments

Hi,

I am trying to compute cost function

I am using the following code:

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.

h = X * theta;

sError = (h - y) .^ 2;

J = sum(sError) / (2 * m);

% =========================================================================

end

.But I am getting the following error

Error in computeCost (line 7)

m = length(y); % number of training examples

.Please help

##### 6 Comments

### Answers (10)

João Marlon Souto Ferraz
on 14 Sep 2020

##### 0 Comments

Sanskar Choudhary
on 28 Dec 2021

##### 3 Comments

Abdulwaliyi
on 12 Dec 2022

this is a nice answer

just use submit() then generate your token and run your answer

Prasad Kute
on 23 Jul 2021

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 = (1/(2*m))*sum(((X*theta) - y).^2)

Try this, you will get it correct.

Image Analyst
on 4 Feb 2022

You say "sorry...I forgot to mention...I just hit run to execute the program and I get this error message.."

Well that is the whole problem. When you have a function that expects inputs like X, y, theta then you need to supply those inputs. You can't just click the green run triangle and expect somehow that doing that will automagically invent values for X, y, and theta. So you need to do something like

% Declare inputs:

X = rand(1,10);

y = rand(1, 10);

theta = 42;

% Now run the function:

result = computeCost(X, y, theta)

fprintf('Done with the program!\n');

%==========================================================================================

% Define the function:

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.

h = X * theta;

sError = (h - y) .^ 2;

J = sum(sError) / (2 * m);

end

##### 0 Comments

Image Analyst
on 6 Feb 2022

As long as y is defined (like you assigned something to y before you called the function) then that line

m = length(y); % number of training examples

should work. However you didn't give the entire error message. You gave the line the error occurred on but not the actual error description. Why not? You need to include all the red text, not just some of it.

By the way you need to assign something for y, you can't just click the green Run triangle on the toolbar without assigning all the input variables.

##### 0 Comments

Jia He
on 6 Feb 2022

##### 0 Comments

MAZEN ALHARBI
on 5 Apr 2022

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

% number of training examples

% You need to return the following variables correctly

data = load('ex1data1.txt'); % read comma separated data

y = data(:, 2);

m = length(y); % number of training examples

X = [ones(m, 1), data(:,1)]; % Add a column of ones to x

theta = zeros(2, 1);

% ====================== YOUR CODE HERE ======================

% Instructions: Compute the cost of a particular choice of theta

% You should set J to the cost.

J = 0;

J = 1/(2*m) * (X * theta - y)' * (X * theta - y); % vectorized form

% =========================================================================

end

##### 1 Comment

safwan bin amir
on 10 Apr 2022

@MAZEN ALHARBI you a life saviour. you are doing that ML course of andrew ng?

### See Also

### Categories

### Products

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!