在Matlab的GUI上画两个axis,如何切换?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Matlab的GUI上画两个axis,如何切换?相关的知识,希望对你有一定的参考价值。

我现在做的是
axis(handles.axes1);imagesc(q)
axis off
axis(handles.axes2);imagesc(q)
axis off

展示相同的图片在axes1和axes2上,但是打开后只有axes2才有,怎么办?

错了坐标轴是axes,axis是坐标轴的范围。

这里给你简单的示范一下,代码如下:

function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
A = imread('H:\\360data\\重要数据\\我的图片\\创意图片\\苹果\\201347215239714.jpg');
axes(handles.axes1);
imshow(A);
axes(handles.axes2);
imshow(A);

 

这是gui的pushbutton中的回调函数,结果如下:

参考技术A 基本手段就是创建坐标系时返回句柄,然后通过句柄切换。
不过,从代码看,你现在的写法应该没问题吧?
参考技术B axis([-5 5 -5 5])
这个就可以、
axis([xmin xmax ymin ymax]) sets the limits for the x- and y-axis of the current axes.
参考技术C plot(handles.axes1,x,y)
通过改handles后面的axes编号就可以了

matlab 在图像上画矢量

用matlab读入一幅图像,并知道某点的方向向量是(nx,ny),我想把这个矢量画在图像上,请问如何实现?

你还得知道这点的坐标x,y
用函数quiver(x,y,nx,ny)

就可以在点 x,y 位置根据矢量 nx,ny 画上一个箭头

实际上函数的输入还可以是矩阵,x,y,nx,ny可以是大小相同的矩阵
在一些列坐标点x,y的位上画上对应的向量,完成矢量场的画图追问

我这样试过呀 画不出来啊 我想画在一幅图像上。

追答

你先把之前的图画好了
然后

hold on;
quiver(x,y,nx,ny);

hold off;

只有加了hold on,在画新的图的时候就不会删掉旧的图
那样可以把多幅图同时画在一个画面内

追问

ImageData =rgb2gray(imread('t3.bmp'));% 读取图像
figure(1);
imshow(ImageData);
hold on;

%求法向量
nx= -0.1527;
ny=0.9883;
quiver(1,1,nx,ny);
hold off
真的无法实现啊 亲 着急

追答

你的那个坐标(1,1)怎么来的

图像给出来了,(1,1)就是图像左上角的点

而你的矢量这么小
就在图像的左上角画个很小的线,怎么看得到

追问

我知道我的错误之处了。quiver(x,y,nx,ny);
函数中,x y必须是矩阵,就可以画出来了。

追答

x,y 不一定是矩阵,一个数也可以
只是你的1,1代表第一行第一列,就是图像的左上角,
而你的nx,ny又很小,在左上角画一个很短的线,基本上就看不到

参考技术A 用quiver命令:quiver(x,y,nx,ny)追问

我这样试过呀 画不出来啊 我想画在一幅图像上。

追答

[x,y] = meshgrid(-2:.2:2,-1:.15:1);
z = x .* exp(-x.^2 - y.^2); [px,py] = gradient(z,.2,.15);
contour(x,y,z), hold on
quiver(x,y,px,py), hold off, axis image
按上面的试试

以上是关于在Matlab的GUI上画两个axis,如何切换?的主要内容,如果未能解决你的问题,请参考以下文章

在matlab的GUI中的listbox如何添加选项

如何在matlab上画中国地图

matlab中如何编写一个GUI的按钮读取图像?

如何在matlab中的水平线上画一条垂直线?

matlab怎么画二维向量图:A是个二维向量,B也是,C=A+B,怎么把这三个向量在同一个坐标上画出来。

用MATLAB GUI做的界面 程序里未对坐标轴做任何设置 绘制的曲线不完整 该做怎么样的调整?~求大神指导!!