Matlab 如何绘制二维矩阵的归一化频率分布图?

Matlab 如何绘制二维矩阵的归一化频率分布图?,matlab,Matlab,我有两个80*80的矩阵。我想画标准化频率图。我尝试用以下代码规范化80*80网格: A = per_monsoon_postmon; % (A is my 80*80 matrix) A = rand (80,80); minA = repmat(min(A), [size(A, 1), 1]); normA = max(A) - min(A); normA = repmat(normA, [length(normA) 1]); normalizedA = (A - minA)./normA

我有两个80*80的矩阵。我想画标准化频率图。我尝试用以下代码规范化80*80网格:

A = per_monsoon_postmon; % (A is my 80*80 matrix)
A = rand (80,80);
minA = repmat(min(A), [size(A, 1), 1]);
normA = max(A) - min(A);
normA = repmat(normA, [length(normA) 1]);

normalizedA = (A - minA)./normA;

但是这个代码没有给我想要的结果,因为带有
nan
值的网格中也有一个数字。例如,早期的网格1*1是
nan
,现在它的值为0.8340。你能帮我规范化二维矩阵,然后在MATLAB中绘制频率分布图吗?有没有办法直接绘制标准化频率分布图?

如果在verctor中有nan值,则可能会出现问题。我将首先替换NaN(例如,用零)

0和1之间的归一化工作原理如下:

 a=rand(80,80); %generates random 80x80 array
a=a-min(min(a)); %shifts the values from 0 to n, min(min() ) because it is 2x2
a=a./max(max(a));% shifts to 0 to 1
如果你想在3d中绘制这些值,我会使用surf plot,因此你首先生成样本值,然后向它们提供z值

[x,y]=meshgrid(1:80);
surf(x,y,z)

你想要什么样的标准?这里有一个很好的matlab答案,也许这对您有帮助: