我有一个矩阵a
,每当我显示pcolor
时,我想将计算机中的图片添加到某些单元格中。我想添加图片。如果图片与matlab文件位于同一目录中,我该如何处理呢?
代码:
a=[
1 0 0;
1 1 0;
0 0 0];
b=[NaN NaN NaN];
a = [a;b];
b = [b NaN];
b = b.';
a = [a b];
Cmap = [1 1 1];
colormap(Cmap);
pcolor(a)
我也注意到pcolor
它将矩阵移动了180度,为什么会这样呢?
这是我得到的pcolor情节:
在这里你可以看到pcolor单元格中的图像,我该如何实现呢?
答案 0 :(得分:0)
我会回答我自己的问题,这就是我所做的。我希望这也可以帮助别人。
a=[
1 0 0 0;
1 1 0 0;
0 0 0 0;
0 0 0 0];
aa = a;
ac = aa;
b=[NaN NaN NaN NaN];
a = [a;b];
b = [b NaN];
b = b.';
a = [a b];
I = imread('redirt.jpg');
J = imresize(I, 3, 'nearest');
[x , y] = size(aa);
delete(findall(gcf,'Tag','8puzzle'))
pos=get(gca,'position'); % getting the position
% calculating position
width=pos(3)/(y);
height =pos(4)/(x);
Cmap = [1 1 1];
colormap(Cmap);
pcolor(a)
axis off
% loop over the positions/cells you want to place image
for i=1:x
for j=1:y
if(aa(i,j) == 1)
% image position
axes('pos',[pos(1)+width*(i-1),pos(1)+height*(j-1),width,height], 'Tag','8puzzle');
% Show image
imshow(J)
end
if (i == 4 && j == 4)
axes('pos',[pos(1)+width*(i-1),pos(1)+height*(j-1),width,height], 'Tag','8puzzle');
% Show image
imshow('vacum.jpg')
end
end
end
set(gca, 'Ydir', 'reverse');
图像与细胞重叠一点,但它不会干扰显示。