在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又很小,在左上角画一个很短的线,基本上就看不到
我这样试过呀 画不出来啊 我想画在一幅图像上。
追答[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,如何切换?的主要内容,如果未能解决你的问题,请参考以下文章