由于我无法找到自己及相关主题的解决方案,我想问一下是否有人可以给我一些提示如何解决以下问题:
在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
的参数w3
和contourf
定义了3D图的x轴和y轴,而sz
包含三个图的投影 - 尺寸数据设置在(x,y)平面上。
然而,由于我想对2D投影使用特定的颜色编码,(填充的)等高线图似乎不是合适的解决方案。 相反,在应用所需颜色编码的过程之后,2D投影被给出为RGB图像。
因此我尝试使用函数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".
非常感谢任何有助于我解决此问题的想法。
致以最诚挚的问候,
约阿希姆
答案 0 :(得分:0)
您正在使用输出参数“[〜,h2]”调用mapshow,但mapshow仅返回一个输出(句柄)。因此,虽然使用contourf这意味着“不返回轮廓矩阵,返回句柄”,使用mapshow它没有意义。
用h2替换[〜,h2]应该会删除你当前得到的错误。