如何从 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
出了什么问题...当我使用你的 x
和 y
并定义 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
从而得到
我目前在 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
出了什么问题...当我使用你的 x
和 y
并定义 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
从而得到