在pcolor单元格中插入文件中的图片

时间:2016-11-27 22:09:11

标签: matlab

我有一个矩阵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情节: enter image description here

我需要这样的东西: enter image description here

在这里你可以看到pcolor单元格中的图像,我该如何实现呢?

1 个答案:

答案 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');

图像与细胞重叠一点,但它不会干扰显示。

enter image description here