Here is a possible solution to your problem in MATLAB:

```
function res = matrixReshape(mat, r, c)
% Check if reshape is possible
[m, n] = size(mat);
if r*c ~= m*n
    res = mat;
    return
end
% Reshape the matrix
res = reshape(mat, r, c)';
end
```

You can call this function with your input matrix mat and the desired number of rows and columns r and c. If the reshape is possible and legal, it will return the new reshaped matrix; otherwise, it will return the original matrix.

Note that the reshape function in MATLAB returns the reshaped matrix in column-major order, so we use the transpose operator `'` to convert it back to row-major order.
In MATLAB esiste una comoda funzione chiamata reshape che può rimodellare una matrice mxn in una nuova con una dimensione diversa rxc mantenendo i suoi dati originali. Ti viene data una matrice mxn mat e due numeri interi r e c che rappresentano il numero di righe e il numero di colonne della matrice rimodellata desiderata. La matrice rimodellata deve essere riempita con tutti gli elementi della matrice originale nello stesso ordine di attraversamento delle righe in cui erano. Se l'operazione di risagoma con dati parametri è possibile e legale, emette la nuova matrice risagomata; Altrimenti, emette la matrice originale.