当前位置: 代码迷 >> 综合 >> 【matlab问题及原因】散点图映射到灰度图,imshow()出来图是倒的
  详细解决方案

【matlab问题及原因】散点图映射到灰度图,imshow()出来图是倒的

热度:15   发布时间:2023-12-29 22:19:05.0

问题

我有一个散点图,想投影到灰度图显示出来,结果imshow()出来图是倒的
在这里插入图片描述
代码如下:

x = linspace(0,3*pi,200);
y = cos(x) + rand(1,200);  
figure;scatter(x,y);pic=zeros(150,200);
[x_nml,PSX] = mapminmax(x,1,200) ;
x_nml_rnd=round(x_nml);
[y_nml,PSX] = mapminmax(y,1,150) ;
y_nml_rnd=round(y_nml);for m=1:200pic(y_nml_rnd(1,m),x_nml_rnd(1,m))=1;end
figure;imshow(pic);

原因

因为灰度图的数据是数组形式,而数组的第一行第一列在左上角,坐标的原点在左下角,故造成这种差异,如下:将数组第一行第一列置1,画出来的图最上一行和最左一行为白

>> pic=zeros(3,3);
>> pic(1,:)=[1,1,1];
>> pic(:,1)=[1;1;1];
>> picpic =1     1     11     0     01     0     0>> imshow(pic)

在这里插入图片描述

  相关解决方案