Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >MATLAB中GUI轴的更新

MATLAB中GUI轴的更新
EN

Stack Overflow用户
提问于 2010-03-24 05:33:37
回答 2查看 8.6K关注 0票数 1

我正在为我所创建的程序制作一个GUI,在那里我需要能够改变梁上负载的位置。我已经正确地设置了轴和滑块,但我不知道如何使轴更新,因为我找不到任何例子显示如何在互联网上这样做。

目前,当我移动负载,位置更新正常,但旧的位置也停留在屏幕上,这是相当恼人的。

有人能推荐一些好的例子来说明如何做到这一点吗?或者有人有关于如何刷新轴的建议吗?

下面是滑块回调(我还没有包含create_fcn函数)。此外,在代码中有很多注释,因为我使用Guide函数来生成GUI。

请注意,滑块的输入是整个光束长度的一个比例(作为十进制)。

代码语言:javascript
运行
AI代码解释
复制
function PointLoadxx1posslider_Callback(hObject, eventdata, handles)
% hObject    handle to PointLoadxx1posslider (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'Value') returns position of slider
%        get(hObject,'Min') and get(hObject,'Max') to determine range of slider

PLxx1pos = get(handles.PointLoadxx1posslider,'value');

set(handles.PLxx1posedit, 'String', num2str(PLxx1pos));
l = 3000; % This is the Length of the beam

zpl1 = get(handles.PointLoadxx1posslider,'value')*l; 
  % Multiplies the position decimal by the overall length

LoadPlotter(hObject,zpl1,handles) % Sends the command to the plot plot function


guidata(hObject,handles);



function LoadPlotter(hObject,zpl1,handles)

% The following draws the beam supports as lines
SH = l/20; %Height of supports


line([0 l], [SH/2  SH/2])
line([-SH/2 SH/2], [0 0])
line([-SH/2 0], [0 SH/2])
line([0 SH/2], [SH/2 0])

line([l-SH/2 l+SH/2], [0 0])
line([l-SH/2 l], [0 SH/2])
line([l l+SH/2], [SH/2 0])


xlim([ -100 l+200])
ylim([-l/2 l/2])

%Draw Load position
% zpl1 = get(handles.PointLoadxx1posslider,'value')*l;

% zpl1 = 0.5*l;
zpl2 = 0.2*l;

PL1 = 50; 
%This is the value of the point load applied to the beam, which will 
be an input from another slider


PL1Draw = line([zpl1 zpl1],[SH/2 PL1*10]); 


% refresh(handles.axes1); 
guidata(hObject,handles);

显然,我希望保留绘制的其他线条,但在移动滑块时更改PL1Draw。你能解释一下我该怎么做吗?

在此之前,非常感谢您。

詹姆斯

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-24 07:56:56

与实际问题无关,但与项目有关:

http://www.mathworks.com/matlabcentral/fileexchange/2170

这本书仍然可以在亚马逊上使用,它可以为你节省大量的材料力学的编码。这是我12年前在读大学的时候写的,但我认为MATLAB的代码应该还能用。

票数 0
EN

Stack Overflow用户

发布于 2010-03-24 06:00:28

我假设你画了一个横梁,当你改变滑块值时,它应该弯曲。由于您能够将新位置绘制到轴中,所以我假设您知道如何编写回调。我进一步假设,地块的某些部分应该保持不变,有些部分应该改变。

要更改需要更改的部分,最简单的方法就是删除它们,然后重新绘制。为了从情节中删除特定的项目,最好给它们加上标签。这样,你的阴谋就会变成这样

代码语言:javascript
运行
AI代码解释
复制
%# remove the old position
%# find the handle to the old position by searching among all the handles of 
%# the graphics objects that have been plotted into the axes
oldPosHandle = findall(handles.axes1,'Tag','position');
delete(oldPosHandle);

%# plot new position
PL1Draw = line([zpl1 zpl1],[SH/2 PL1*10]); 
%# add the tag so that you can find it if you want to delete it
set(PL1Draw,'Tag','position');

Note 1

要使GUI响应更快(如果需要的话),不要删除和重新绘制,而是更改旧位置对象的'XData‘和'YData’属性。

Note 2

如果您还没有这样做,那么将绘图函数(更新绘图中所有内容的函数,而不仅仅是加载位置)放在单独的函数中,而不是放在滑块的回调中,而是让滑块回调调用绘图函数。通过这种方式,您可以从几个按钮和滑块调用相同的绘图函数,这使得代码更易于维护。

编辑

我已经更新了命令。请注意,没有特殊的“标记”功能。‘'Tag’是每个图形对象的属性,比如‘Unit’或'Color‘。它只是帮助您标记图形对象,这样您就不需要记住句柄了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2508006

复制
相关文章
matlab GUI基础2
GUIDE编程开发 matlab可视化姐买你的设计,一般有两种方法,一是直接通过编辑M脚本文件产生GUI,二是通过MATLAB图形用户界面开发环境GUIDE来建立界面。GUIDE是matlab为编写GUI界面提供的集成开发工具,提供了姐买你的外观、属性和回调函数等。GUIDE将用户保存好的GUI界面保存在一个FIG资源文件中,同时还能够产生GUI初始化和组件界面布局控制代码的M文件,这个M文件为实现回调函数提供了一个参考框架。 一.GUI对象的常用属性 1.控件风格和外观 backgroundColor:设
瓜大三哥
2018/02/26
1.2K0
matlab GUI基础2
matlab GUI基础11
神经网络工具 人工神经网络,是对人类大脑系统的一阶特性的一种描述。它是一个数学模型,可以用电子线路来实现,也可以用计算机程序来模拟,是人工智能研究的一种方法。在人工神经望京的发展中,对生物神经系统从不同的角度进行了不同层次的描述和模拟,提出了各种各样的神经网络。 人工神经网络(artifical neural network,ANN)是在生物神经网络(biological neural network,BNN)的基础上发展起来的,是由大量处理单元广泛互联而成的网络,反映了人脑功能的基本特性。人工神经网络是对
瓜大三哥
2018/02/26
6510
matlab GUI基础5
高级文件I/O——图像和视频文件 函数 说明 imread 说明图像文件 imwrite 写入图像文件 imfinfo 获取图像文件的信息 imshow 显示图像 imformats 获取MATLAB
瓜大三哥
2018/02/26
1K0
matlab GUI基础5
MATLAB GUI中Edit Text的Callback函数何时执行
该文介绍了MATLAB GUI中Edit Text的Callback函数的执行时机,总结为:在满足五个条件中的前两个条件下,会执行回调函数。
Alan Lee
2018/01/02
1.6K0
matlab GUI基础3
低级文件I/O 1.文件读取 fopen:文件打开 fclose:文件关闭 fread:二进制数据的读取 fwrite:二进制文件写入 fgetl:逐行读取 fgets:逐行读取 fscanf:格式化读取: fprintf:格式化写入 clear all; [fid,message]=fopen('file2.txt','w+'); if fid==-1 disp(message); else fwrite(fid,'good moring','uint8'); end fclose(fi
瓜大三哥
2018/02/26
7170
matlab GUI基础3
matlab GUI编程入门
这里我们来实现一个加法器,功能比较简单,主要用于了解matlab中的代码是如何与控件进行交互。
全栈程序员站长
2022/09/05
3740
matlab GUI基础10
MATLAB与Word/EXCEL混合使用 matlab软件通过notebook可以和word软件进行数据的交换。matlab中的notebook允许用户在word中编写程序,然后送到matlab软件中执行,最后将结果返回到word软件中。 1.notebook的安装 matlab的notebook制作的M-book文档不仅拥有word的全部文字处理功能,而且具备matlab无与伦比的矩阵计算和数据可视化功能。 notebook -setup 2.Excel Link Excel Link是Excel软件和
瓜大三哥
2018/02/26
5590
matlab GUI基础9
数字图像的采集 一、USB摄像头设置 在matlab中通过函数imaqhwinfo()检测用户的matlab软件是否安装了图像采集工作箱,并显示图像采集工具箱的版本。USB摄像头的适配器为winvideo。 二、图像和视频的采集 在matlab中,通过函数videoinput()建立摄像头对象后,可以采用函数preview()进行视频采集和显示。该函数的调用格式为:preview(obj),其中obj为摄像头对象。调用函数stoppreview()暂停视频的采集和显示,利用函数closepreview()关
瓜大三哥
2018/02/26
7880
matlab GUI基础6
高级文件I/O——表单文件 函数说明xlsread读取EXcel表单文件xlsfinfo获取Excel表单文件的信息xlswrite将数据写入Excel表单文件wk1read读取Lotus 123表单文件wk1finfo获取Lotus 123表单文件的信息wk1write将数据写入Lotus 123表单文件 读取表单文件: [nummeric,txt,raw]=xlsread(‘filename’,’sheet’,’range’):文件名,数据内容保存在nummeric中,文本内容保存在txr中,未处理的内
瓜大三哥
2018/02/26
6990
matlab GUI基础6
matlab GUI基础1
GUI编程开发 1.句柄图形 是一种面向对象的绘图系统。这些细节一般隐藏在图形M文件的内部,用户通过句柄图形可以定制图形的许多特性,这是使用高级绘图函数无法实现的。利用句柄图形可以创建图形用户界面。 2.图形句柄 matlab在创建每一个图形对象时,都为该对象分配唯一的一个值,称其为图形对象句柄。句柄是图形对象的唯一标识符,不同对象的句柄不可能重复和混淆。 计算机屏幕作为根对象(root)由系统自动建立,其句柄值为0,而图形窗口对象的句柄值为一正整数,并显示在该窗口的标题栏。其他图形对象的句柄为浮点数。 m
瓜大三哥
2018/02/26
1.2K0
matlab GUI基础1
matlab GUI基础3
低级文件I/O 1.文件读取 fopen:文件打开 fclose:文件关闭 fread:二进制数据的读取 fwrite:二进制文件写入 fgetl:逐行读取 fgets:逐行读取 fscanf:格式化读取: fprintf:格式化写入 clear all; [fid,message]=fopen('file2.txt','w+'); if fid==-1 disp(message); else fwrite(fid,'good moring','uint8'); end fclose(fi
瓜大三哥
2018/02/26
6800
matlab GUI基础3
matlab GUI基础7
matlab编译器 matlab的功能非常强大,可以进行数学计算、仿真和数据可视化等,有时希望将matlab编写的程序编程脱离matlab环境,可以独立运行的可执行软件。matlab的编译器可以满足这个要求。 matlab编译器将m文件作为输入,产生可以独立运行的应用程序或相应的组件软件。产生的应用程序及组件软件都是与平台相关的。 独立运行的应用程序: c或c++共享库:在windows系统中为动态链接库DLL,这些库也可以在没有matlab的用户机器上运行。 1. 编译过程 matlab编译器采用matl
瓜大三哥
2018/02/26
8470
matlab GUI基础7
MATLAB GUI编程总结
一、控件风格和外观 (1)BackgroundColor:设置控件背景颜色,使用[R G B]或颜色定义。 (2)CData:在控件上显示的真彩色图像,使用矩阵表示。 (3)ForegroundColor:文本颜色。 (4)String属性:控件上的文本,以及列表框和弹出菜单的选项。 (5)Visible:控件是否可见。
全栈程序员站长
2022/08/11
2.2K0
MATLAB GUI显示图片的方法
  在MATLAB的命令行中显示图片或者数据,十分简单,仅通过imshow,plot或者imagesc等函数即可。   而在MATLAB GUI中显示图片,通常需要借助Axes控件来实现。相比而言,多一些操作。
全栈程序员站长
2022/07/01
4.6K0
MATLAB GUI显示图片的方法
matlab GUI基础4
高级文件I/O——语音文件 1.读取带有分隔符的文件 在matlab中,使用向导将外部的数据文件导入到matlab的工作空间中,然后就可以进行分析和处理了。如果数据文件中,有文本内容,需要进行特别的处理。 对于带有分隔符的数据文件,可以采用函数dlmread()导入到matlab的工作空间中,该函数的调用格式为: results = dlmread(‘filename’):该函数从数据文件filename导入到吗淘宝的工作空间中 results = dlmread(‘filename’,’delimite
瓜大三哥
2018/02/26
9270
matlab GUI基础4
matlab GUI基础8
图像处理工具箱 从屋物理和数学角度看,图像时记录物体辐射能量的空间发呢不,这个分布是空间坐标、时间坐标和波长的函数,即i = f(x,y,z,λ,t),这样的图像能被计算机处理,计算机图像处理即数字图像处理matlab的长处就是处理矩阵运算,因此使用matlab处理数字图像非常方便,计算机图像处理是利用计算机对数字图像进行一系列操作,从而获得预期的结果的技术。 1.图像类型转换 函数说明dither图像抖动,将灰度图变成二值图,或将RGB图像抖动成索引图像 gray2ind将灰度图转换为索引图象graysl
瓜大三哥
2018/02/26
1.3K0
matlab GUI基础8
基于Matlab GUI的PID研究
前言:偷懒了一段时间,最近计划分享一些之前做过的项目,本期分享基于Matlab GUI的PID研究。
用户9925864
2022/07/27
6350
基于Matlab GUI的PID研究
基于MATLAB GUI的串口通信
最近在学习MATLAB 发现它还可以控制串口 于是通过MATLAB 的GUI创建了一个串口通信的小软件
全栈程序员站长
2022/07/01
1.3K0
基于MATLAB GUI的串口通信
Matlab GUI界面设计
点击确定,得到两个文件,一个是.m文件,另一个是.fig文件,需要说明的是,.m文件用于编辑GUI中控件所需要的回调代码,.fig文件可以用鼠标拖拽等比较简单的操作进行初始的界面设计。
全栈程序员站长
2022/08/10
1.2K0
Matlab GUI界面设计
MATLAB GUI的运行原理理解
为了在MATLAB上演示算法,最近学了一下MATLAB的GUI,学习方法就是一边用一边百度……由于用这种随意的学习方法,这个过程中我也是遇到各种问题,花了不少精力。为了使得这些痛苦的过程不被浪费,这里就总结一下使用MATLAB GUI的知识点,已便今后查阅。
全栈程序员站长
2022/09/01
1.3K0

相似问题

Matlab - GUI更改轴大小

13

Matlab GUI轴到图

10

在Matlab中移除GUI轴的缩放

21

在Matlab GUI中使用轴

13

如何在matlab gui中更改轴背景

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档