Q1. I wonder if ga can be applied to the matrix data ?
Yes, but fitness_function_my_own must return a scalar.
If you want fitness_function_my_own to return multiple values because you are trying to optimize multiple functions at the same time, then you need gamultiobj() instead of ga()
Is it necessary to modify the ga function directly in the file implemented to apply this option to the corresponding function?
No, see gaoptimset() to construct an options structure. The options structure must be passed as either the 10th or 11th parameter to ga(); you can use  for parameters you are not using. For example,
ga(fitness_function_my_own, 3, , , , , , , , options)