Easy with colortbl (loaded via xcolor):
\documentclass{article}
\usepackage[table]{xcolor}
\begin{document}
\begin{tabular}{|>{\columncolor{red!20}}l|c|c|c|}
\hline
\rowcolor{blue!20}%
&\textbf{ciao}&\textbf{ciao2}&\textbf{ciao3}\\\hline
\textbf{ciao}&\cellcolor{green}0.815&0.913&0.278\\\hline
\textbf{ciao2}&0.906&\cellcolor{green}0.632&0.547\\\hline
\textbf{ciao3}&0.127&0.098&\cellcolor{green}0.958\\\hline
\end{tabular}
\end{document}

For getting automatically what you want you just need to use the following code; it's necessary to change the name of the environment, though.
\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{xparse,environ}
\ExplSyntaxOn
\NewEnviron{matlabtabular}[1]
{
\tl_set:Nx \l_angelino_matlab_preamble_tl
{
\tl_tail:n { #1 }
}
\tl_put_left:Nn \l_angelino_matlab_preamble_tl { | >{\columncolor{red!20}} }
\angelino_matlabtab:VV \l_angelino_matlab_preamble_tl \BODY
}
\cs_new_protected:Nn \angelino_matlabtab:nn
{
\seq_set_split:Nnn \l_angelino_matlabtab_rows_seq { \hline } { #2 }
% the first item is empty
\seq_pop_left:NN \l_angelino_matlabtab_rows_seq \l_angelino_matlabtab_body_tl
% the last item is empty
\seq_pop_right:NN \l_angelino_matlabtab_rows_seq \l_tmpa_tl
% separate the first row
\seq_pop_left:NN \l_angelino_matlabtab_rows_seq \l_angelino_matlabtab_body_tl
% fix the first row
\tl_put_left:Nn \l_angelino_matlabtab_body_tl { \hline\rowcolor{blue!20} }
\tl_put_right:Nn \l_angelino_matlabtab_body_tl { \hline }
\seq_map_inline:Nn \l_angelino_matlabtab_rows_seq
{
\int_incr:N \l_angelino_matlab_currentrow_int
\int_zero:N \l_angelino_matlab_currentcol_int
\seq_set_split:Nnn \l_angelino_matlabtab_row_seq { & } { ##1 }
\seq_pop_left:NN \l_angelino_matlabtab_row_seq \l_angelino_matlabtab_first_tl
\tl_put_right:NV \l_angelino_matlabtab_body_tl \l_angelino_matlabtab_first_tl
\seq_map_inline:Nn \l_angelino_matlabtab_row_seq
{
\int_incr:N \l_angelino_matlab_currentcol_int
\int_compare:nTF { \l_angelino_matlab_currentcol_int == \l_angelino_matlab_currentrow_int }
{
\tl_put_right:Nn \l_angelino_matlabtab_body_tl { & \cellcolor{green} ####1 }
}
{
\tl_put_right:Nn \l_angelino_matlabtab_body_tl { & ####1 }
}
}
\tl_put_right:Nn \l_angelino_matlabtab_body_tl { \hline }
}
\begin{tabular}{#1}
\l_angelino_matlabtab_body_tl
\end{tabular}
}
\cs_generate_variant:Nn \angelino_matlabtab:nn { VV }
\int_new:N \l_angelino_matlab_currentcol_int
\int_new:N \l_angelino_matlab_currentrow_int
\seq_new:N \l_angelino_matlabtab_rows_seq
\seq_new:N \l_angelino_matlabtab_row_seq
\tl_new:N \l_angelino_matlabtab_body_tl
\tl_new:N \l_angelino_matlabtab_first_tl
\tl_new:N \l_angelino_matlab_preamble_tl
\ExplSyntaxOff
\begin{document}
\begin{matlabtabular}{|l|c|c|c|}
\hline
&\textbf{ciao}&\textbf{ciao2}&\textbf{ciao3}\\\hline
\textbf{ciao}&0.815&0.913&0.278\\\hline
\textbf{ciao2}&0.906&0.632&0.547\\\hline
\textbf{ciao3}&0.127&0.098&0.958\\\hline
\end{matlabtabular}
\end{document}
The output is the same as before.
Note that this makes some assumptions on the environment's contents. The argument should begin with | that's changed into |>{\columncolor{red!20}}. It is also assumed that every row ends with \\\hline.
colortableor\usepackage[table]{xcolor}and\cellcolorcommand and\begin{tiny}...\end{tiny}does work, but it's 'wrong' – Dec 21 '15 at 21:52