input: Write a python function to generate a visual ASCII art.
  assert generate_ascii([['*', ' ', '*'], [' ', '*', ' '], ['*', ' ', '*']]) == '*****\n* * *\n* * *\n* * *\n*****\n'
  assert generate_ascii([['.', '.', '.'], ['.', '.', '.'], ['.', '.', '.']]) == '*****\n*...*\n*...*\n*...*\n*****\n'
  assert generate_ascii([[' ', ' ', ' '], [' ', ' ', ' '], [' ', ' ', ' ']]) == '*****\n*   *\n*   *\n*   *\n*****\n'
output: def generate_ascii(matrix):
      rows = len(matrix)
      cols = len(matrix[0])
      
      result = ''
      result += '*' * (cols + 2) + '\n'
      
      for row in matrix:
          result += '*' + ''.join(row) + '*\n'
      
      result += '*' * (cols + 2) + '\n'
      
      return result