# MATLAB: How to call a subfunction (local function)

local functionsub function

How do I call a subfunction (local function)?
I am supposed to make a game of tictactoe using a sunfunction (local function). I keep getting errors on the line that I am trying to call the subfunction (the line that has "???"). Can someone please help me with making the correct code to call my subfunction, "Initialize_Board."
``function Ticktacktoe()    clc();        % The board size must be square, but it can be any size > 1    Board_size = 3;        ???        % Begin playing the game until someone wins or the board is full    Whose_turn = 'X';    Winner     = ' ';    while Winner == ' '                % Display the current tic-tac-toe board        disp(Board);                % Get the location to put the next X or O        fprintf('Enter %c''s row   : ', Whose_turn);        Row = input('');        fprintf('Enter %c''s column: ', Whose_turn);        Column = input('');                % Place the X or O on the Board; the times 2 skips over the borders        Board(Row*2,Column*2) = Whose_turn;                % Check to see if this created a sequence -- i.e., is there a winner?        if sum( sum( Board == Whose_turn ) == Board_size) > 0 % a column is full of the same symbols            Winner = Whose_turn;        elseif sum( sum( Board' == Whose_turn ) == Board_size) > 0 % a row is full of the same symbols            Winner = Whose_turn;        elseif sum( diag(Board,0) == Whose_turn ) == Board_size % the diagonal has all the same symbols            Winner = Whose_turn;        else % check the upper-right to lower left diagonal for all of the same symbols            Total_Xs = 0;            for row = 2:2:Board_size*2                if Board(row,(Board_size*2-row+2) ) == Whose_turn                    Total_Xs = Total_Xs + 1;                end            end            if Total_Xs == Board_size                Winner = Whose_turn;            end        end                % Check to see if all the blanks are gone and the game is over        if sum( sum( Board == ' ') ) == 0            Winner = 'C'; % "Cat" got the game        end                % Switch players turn        if Whose_turn == 'X'            Whose_turn = 'O';        else            Whose_turn = 'X';        end            end % while Winner == ' '        % Display the final board layout so we can see the last move    disp(Board);        % Display who won    if Winner == 'X'        fprintf('X won - congratulations!\n');    elseif Winner == 'O'        fprintf('O won - congratulations!\n');    else % it must be a 'cat' game        fprintf('Cat won - sorry.\n');    end    end % function tictacktoefunction Initialize_Board()    %   INPUTS: Board_Size    %   OUTPUTS: Board    %    %  REFERENCES: None    %---------------------------------------------------------------        clc();    % Allocate a character array for the board description.    % The board contains the square boundaries and a blank space    % for the X's and O's to be played into.    Board = char(2*Board_size + 1, 2*Board_size + 1);        % Initialize the board.    Row = 1;    for j = 1:Board_size        Board(Row,  1) = '+';        Board(Row+1,1) = '|';                Column = 2;        for k = 1:Board_size            Board(Row,Column  ) = '-';            Board(Row,Column+1) = '+';                        Board(Row+1,Column  ) = ' ';            Board(Row+1,Column+1) = '|';                        Column = Column + 2;        end                Row = Row + 2;    end        % Fill in the bottom row of the board    Board(Row,  1) = '+';        Column = 2;    for k = 1:Board_size        Board(Row,Column  ) = '-';        Board(Row,Column+1) = '+';                Column = Column + 2;    endend % function Initialize_Board``

• #### Option-1

pass Board argument out from function and pass in Board_size
``Board= Initialize_Board(Board_size);``
function part
``function Board= Initialize_Board(Board_size)``

#### Option-2

Line-7
``Initialize_Board;``
remove end from line 72 (function tictacktoe) and put it at the end of the code (after Initialize_Board())
This will allow Initialize_Board function to use tictacktoe workspace