如何从 Matlab 中的现有数据集创建颜色图?

How do I create a colormap from an existing data set in Matlab?

我目前在 Matlab 中有一个来自现有数据集的二维等高线图。我制作了一个 [x,y] 网格并使用此网格和 z 数据使用 contourf(x, y, z) 生成二维等高线图。我的目标是将相同的数据重现为颜色图,具有平滑的颜色渐变,而不是作为二维等高线图,具有不同的色带。

我试过使用 imagesc(x, y, z) 和 [x,y] 作为网格和不使用。我最终得到了一个错误函数 "Attempt to execute SCRIPT imagesc as a function:"

x = 0.1:0.1:1
y = 0.1:0.1:1
[X, Y] = meshgrid( x , y )
Z = #data#
contourf( X , Y , Z )
title
xlabel
ylabel

我不太确定你尝试使用 imagesc 出了什么问题...当我使用你的 xy 并定义 Z=sin(X*20)+sin(Y*20); 和运行 imagesc(x,y,Z) 我得到了

查看您收到的错误消息,我怀疑您在某个地方有一个保存为 imagesc 的脚本,它以某种方式覆盖了 imagesc 函数。尝试 运行 edit imagesc 看看会出现什么,它是函数吗?

现在,就制作这种平滑外观而言,您有两种选择。首先,您可以只使用更高密度的点而不是 10x10 网格。例如

x = linspace(0,1,1000);
y = linspace(0,1,1000);
[X, Y] = meshgrid( x , y );
Z=sin(X*20)+sin(Y*20);
imagesc(x,y,Z)

给予

或者,如果您 want/need 坚持使用低密度点,您可以使用 pcolor(X,Y,Z) 然后设置 shading interp 从而得到