function [kernel_matrix] = kernel_calculate(frequency,axis,wavenumber_type)
    x_len = length(axis);
    kernel_matrix = zeros(x_len,x_len);
    for i = 1:x_len
        for j = 1:x_len
            if(i==864&&j==151)
                a=1;
            end
            if(wavenumber_type =="ball")
                kernel_matrix(i,j) = wavenumber_function_ball(frequency,axis{i},axis{j});
            elseif(wavenumber_type =="sphere")
                kernel_matrix(i,j) = wavenumber_function_sphere(frequency,axis{i},axis{j});
            elseif(wavenumber_type =="sphere_shell")
                kernel_matrix(i,j) = wavenumber_function_sphere_shell(frequency,axis{i},axis{j});
            elseif(wavenumber_type =="solid_circle")
                kernel_matrix(i,j) = wavenumber_function_solid_circle(frequency,axis{i},axis{j});
            elseif(wavenumber_type =="4d_ball")
                kernel_matrix(i,j) = wavenumber_frequency_4d_ball(frequency,axis{i},axis{j});
            elseif(wavenumber_type =="1d")
                kernel_matrix(i,j) = wavenumber_function_1d(frequency,axis{i},axis{j});
            elseif(wavenumber_type =="3dspace")
                kernel_matrix(i,j) = wavenumber_function_3d_space(frequency,axis{i},axis{j});
                %             elseif(wavenumber_type =="4d_ball_test")
                % kernel_matrix(i,j) = Copy_2_of_wavenumber_frequency_4d_ball(frequency,axis{i},axis{j});
            end
        end
    end
end