Noise estimation SNR matrix I have a signal matrix which is a $256\times 192$, and I want to calculate the SNR considering that my $259\times 192$ matrix  is an average of a $256\times 192\times 330$ matrix, where $330$ is the number of frames, after a reshape I have obtained a $256\times 192$ matrix. So my code is:

signal = 256x192x256;

signal_average = mean(signal,3);
noise_estimation = signal_average - repmat(mean(signal_average,2),1);
signal_power = mean(abs(signal_average).^2);
noise_power = mean(abs(noise_estimation).^2,2);
SNR = 10*log10(signal_power./noise_power);


Is it correct to use this approach in order to obtain a matrix with different SNR for each frame?
In your case you probably want to calculate the SNR as mean over standard deviation.

signal=rand([256,192,330]); %demo data
SNR = mean(signal,3)./std(signal,[],3);
SNRdb = 10*log10(SNR);


this way you obtain different SNR values per pixel. 256x192 pixels in 330 frames.

To get the values for each of the 330 frames instead you must first reshape your matrix.

signal=reshape(signal,[],330);  %pixel values merged
SNR = mean(signal)./std(signal);
SNRdb = 10*log10(SNR);