由于我自己找不到解决方案和相关主题,我想问一下是否有人可以给我一些提示如何解决以下问题:
在 3D 图中,通过将函数 contourf 的结果分配给图形句柄,可以将 2D 投影显示为(填充的)等高线图,如下面的 matlab 代码片段所示:
[~,h2]=contourf(w1,w3,sz,level_list2,'LineWidth',1);
h2=findobj(h2,'type','patch');
for j=1:length(h2),
zd=w5(1).*ones(size(get(h2(j),'XData')));
set(h2(j),'ZData',zd);
end
set(h2,'FaceLighting','none');
函数的参数w1
和定义 3D 图的 x 轴和 y 轴,同时包含三维数据集在 (x,y) 平面上的投影。w3
contourf
sz
但是,由于我想对 2D 投影使用特定的颜色编码,因此(填充的)等高线图似乎不是合适的解决方案。相反,在应用所需颜色编码的过程后,将 2D 投影作为 RGB 图像给出。
因此我尝试使用 function mapshow
,这在这种情况下似乎更合适。然后对应的代码片段读取
[~,h2]=mapshow(w1,w3,szIndexedImage,hsv);
h2=findobj(h2,'type','patch');
for j=1:length(h2),
zd=w5(1).*ones(size(get(h2(j),'XData')));
set(h2(j),'ZData',zd);
end
set(h2,'FaceLighting','none');
其中索引图像 szIndexedImage 是通过 rgb 图像 szRGBimage 获得的
szIndexedImage=rgb2ind(szRGBimage,hsv);
hsv
是 HSV 颜色图。
运行程序导致错误信息
Error in `mapshow` (line 214)
error(nargchk(1,Inf,nargin,'struct'))
Output argument "varargout" (and maybe others) not assigned during call to
"/usr/local/MATLAB/R2012a/toolbox/map/map/mapshow.m>mapshow".
非常感谢任何可以帮助我解决此问题的想法。
此致,
约阿希姆