function [opt_C, opt_g] = gridsearch(labels, samples)

c_vector = logspace( -2, 4, 7 );
g_vector = logspace( -5, 1, 7 );
[C, g] = meshgrid( c_vector, g_vector );
grid_size = size( g, 1 ) * size( C, 2 );
acc = zeros( 1, grid_size );

for k = 1:grid_size
    disp('Here I am! ')
    disp(k)
    svm_options = [ '-s 0 -t 2 -q -h 1 -b 1 -v 5 -c ', num2str( C(k) ), ' -g ', num2str( g(k) ) ];
    svmtrain( double(labels), double(samples), svm_options )
    disp('Accuracy for k=' + num2str(k) + ' is ' + num2str(acc(k)))
end

[ ~, index ] = max( acc );
opt_C = C( index );
opt_g = g( index );

end
