
原因分析:“句柄无效”通常是编程的错误,或是丢失或更改了某些系统文件。也可能是dircetx错误,或者是丢失了某些动态连接库的DLL文件。重
解决方法:新下载一个directx90c,安装试试。如果还不行,就重装 *** 作系统,这样做比较省事。
subplot(2,1,1); 是把整个figure分成两行一列,然后在其第一行这个区域画图的,所以会铺满
subplot('Position',[left bottom width height]) %先设定好区域
plot(u1); %再画图,就可以了
要在MATLAB GUI界面中的axes中显示m文件绘制的图像,可以采用以下步骤:
在GUI中添加一个axes控件,可以通过GUIDE工具或手写代码实现。
在m文件中使用绘图函数,如plot、imshow等生成图像。
在GUI代码中获取axes句柄,并将图像绘制到该句柄对应的axes中。
具体实现代码如下所示:
在GUI中添加axes控件:
axes_handle = axes('Units','normalized', 'Position',[01, 01, 08, 08]);
在m文件中绘制图像:
% 示例绘制一张随机图像
img = rand(100, 100);
imshow(img);
在GUI代码中将图像绘制到axes中:
% 获取axes句柄
axes_handle = handlesaxes1; % handles为GUI界面句柄结构体
% 在axes中绘制图像
axes(axes_handle);
imshow(img);
这样,m文件中生成的图像就会显示在GUI界面的axes中了。需要注意的是,axes的坐标系与MATLAB中默认的坐标系不同,需要在绘图时根据需要进行转换。
callback不是默认就有两个参数吗,我记得其中一个就是你要的那个东西。就算不是,callback也可以自己加参数的,你把你要的句柄作为参数加进去就行了。
试了一下就是第一个参数啊
function Untitled3f=figure(1);
s1=uicontrol(f,'style','pushbutton','String','123','position',[100 50 60 50],'callback',@setnum);
end
function setnum(a,~)
set(a,'string','345');
end
最简单的用@符号获取函数句柄。
int(@sin)
或者用inline也可以,
fun=inline('sin(x)');
int(fun)
希望能解决您的问题。
以上就是关于matlabdatacursormode图形句柄无效全部的内容,包括:matlabdatacursormode图形句柄无效、Matlab GUI 调用函数后如何设置图形句柄、matlab 的m文件绘制的图像怎么在gui界面的axes中显示等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)