MATLAB: Replace zeros with NaN’s – when there are already NaN’s in the matrix

findmatrixnanzeros

Hi
I have a large square matrix which is made up of smaller square matrices which have some NaN values. I used 'blkdiag' to combine the matrices diagonally and all the gaps were filled in with zeros.
I now wish to replace all of the zeros in the large matrix (F) with NaN's.
I tried F(find(~F))=NaN but I get an error saying NaN's cannot be converted to logicals, which makes sense but now I'm not sure how I can get round it. I am fairly new to Matlab.
Any help would be much appreciated.

Best Answer

No reason for find and you can't convert nans to logicals.
F(F==0) = nan;