如何制作2D矩阵的归一化频率分布图?

时间:2018-05-25 01:24:05

标签: 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;

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

1 个答案:

答案 0 :(得分:0)

如果您的verctor中有nan值,则可能会遇到问题。我会先替换nans(例如用零)。

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中绘制这些值,我会使用一个冲浪图,因此你首先生成样本值,然后给它们提供z值

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