首页 \ 问答 \ 在MATLAB中在函数和回调之间传递数据(Passing data between functions and callbacks in MATLAB)

在MATLAB中在函数和回调之间传递数据(Passing data between functions and callbacks in MATLAB)

我是MATLAB GUI构建的新手,我正在尝试学习如何在两个GUI之间传递数据。 我的问题是如何从子GUI调用主GUI中的函数。

例如:

在主GUI中,我从各自的回调中获取两个文本框中的值:

handles.A= str2double(get(handles.textbox1,'string'));  

guidata(hObject,handles)

handles.B = str2double(get(handles.textbox2,'string'));   

guidata(hObject, handles)

那么除了上面的内容之外,我还有第三个功能就是这样做:

function addition(handles)    

C= handles.A + handles.B

然而,第三个功能是通过按钮按钮从子GUI访问,如下所示:

function pushbutton1_Callback(hObject, eventdata, handles)   

main_gui('addition');

我得到的错误是没有足够的输入参数在C = handles.A + handles.B ,但我不知道为什么我收到此错误。 谁能帮我?


I am new to MATLAB GUI building and I am trying to learn how to pass data between two GUIs. My question is how to call a function in the main GUI from a sub GUI.

For example:

In the main GUI, I am getting the values from two text box from their respective callbacks as such:

handles.A= str2double(get(handles.textbox1,'string'));  

guidata(hObject,handles)

handles.B = str2double(get(handles.textbox2,'string'));   

guidata(hObject, handles)

then in addition to the above, I have a third function that does addition as such:

function addition(handles)    

C= handles.A + handles.B

The third function however is being accessed from the sub GUI through a button push as follows:

function pushbutton1_Callback(hObject, eventdata, handles)   

main_gui('addition');

The error I am getting is not enough input arguments in the line C = handles.A + handles.B, but I don't know why I am getting this error. Can anyone help me?


原文:https://stackoverflow.com/questions/16865859
更新时间:2022-04-02 12:04

最满意答案

你不是100%清楚规则是什么,但如果它只是在第一个冒号之前删除所有内容的问题,那么你可以使用split

>>> 'm:abc'.split(':',1)[-1]
'abc'
>>> 'mabc'.split(':',1)[-1]
'mabc'
>>> 'm:a:bc'.split(':',1)[-1]
'a:bc'

split的第二个参数限制了要执行的拆分数,而[-1]得到了拆分的正确部分(如果没有拆分,则为第一个元素)。

请参阅str.split()上的文档

但是,如果结肠必须处于第二位置:

def remove_prefix(s):
    return s[2:] if len(s) > 1 and s[1] == ':' else s

This is the only way I could figure out how to accomplish the above:

re.sub(r'^[a-z]:','',string)

相关问答

更多
  • 你可以使用像驯化的贪婪令牌 ^foo(?:(?!^foo|bar=2$).)*bar=2$ (?:(?!^foo|bar=2$).)*匹配任何不是foo文本(在行/字符串的开头)而不是在行/字符串末尾的bar=2 。 请参阅正则表达式演示 。 但是,这样的构造是消耗资源的,建议将其展开。 这是一个选项: ^foo[^\nb]*(?:\n(?!foo)[^\nb]*|b(?!ar$)[^\nb]*)*bar=2$ 看另一个演示 。 You can use a tempered greedy token l ...
  • $ echo abcabcabc | perl -ne 'print $1 if /(a.*?c)$/' abcabcabc # what, non-greedy become greedy? 非贪婪意味着它将匹配当前位置上可能的最少字符,以使整个模式匹配。 在位置0匹配a后, bcabcab是最少的.*? 可以在位置1处匹配,同时仍然满足该模式的其余部分。 "abcabcabc" = /a.*?c$/详细信息: 在pos 0, a匹配1个字符( a )。 在pos 1, .*? 匹配0个字符(空字符串) ...
  • 你不是100%清楚规则是什么,但如果它只是在第一个冒号之前删除所有内容的问题,那么你可以使用split : >>> 'm:abc'.split(':',1)[-1] 'abc' >>> 'mabc'.split(':',1)[-1] 'mabc' >>> 'm:a:bc'.split(':',1)[-1] 'a:bc' split的第二个参数限制了要执行的拆分数,而[-1]得到了拆分的正确部分(如果没有拆分,则为第一个元素)。 请参阅str.split()上的文档 。 但是,如果结肠必须处于第二位置: d ...
  • 尝试: {{[^{]*?}}这是使用'{'字符不应出现在内部字符串中的事实。 它符合你的期望。 Try: {{[^{]*?}} This is using the fact that the '{' character should not appear in the inner strings. It does match what you expect.
  • 如果您知道0x前缀,您可以使用切片将其删除: >>> "0xdeadbeef"[2:] 'deadbeef' 或者,您可以使用字符串格式化运算符而不是hex() : >>> "%x" % 3735928559 'deadbeef' 或使用format() : >>> format(3735928559, "x") 'deadbeef' If you know the 0x prefix is there, you can remove it by using slicing: >>> "0xdeadb ...
  • 双量词只是一个语法错误,可能会导致错误消息或未定义的行为。 如果您收到错误消息,这可能会更好。 大量的Perl扩展到正则表达式POSIX; 在写这些工具的时候,有人不太可能会试图用这种古怪的语法来做任何事情。 贪婪的匹配仅在20世纪90年代中期在Perl 5中引入。 The double quantifier is simply a syntax error and could result in either an error message or undefined behavior. It would ...
  • ANTLR 4词法分析器通常以最长匹配获胜行为运行,而不考虑替代出现在语法中的顺序。 如果两个词法分析器规则匹配相同的最长输入序列,则只有这些规则的相对顺序进行比较才能确定如何分配令牌类型。 一旦词法分析器到达非贪婪的可选或闭包,规则内的行为就会发生变化。 从该时刻到规则结束,该规则中的所有备选方案都将被视为有序,而具有最低备选方案的路径将获胜。 这种看似奇怪的行为实际上是由于我们在底层ATN表示中订购替代方式而导致的非贪婪处理。 当词法分析器处于此模式并到达块(ESC|.) ,排序约束要求它尽可能使用ES ...
  • 使用否定, ~来检查即将到来的street_name是否实际上是street_suffix 。 from pyparsing import * street_number = Word(nums)('street_number') street_suffix = oneOf("ST RD DR LN AVE WAY")('street_suffix') street_name = OneOrMore(~street_suffix + Word(alphas))('street_name') addres ...
  • 尝试打印$& (与整个正则表达式匹配的文本)以及$1 。 这可能会让您更好地了解正在发生的事情。 你似乎遇到的问题是.*? 并不意味着“在这里使用最少字符的所有可能匹配中找到匹配。” 它只是意味着“首先,尝试在这里匹配0个字符,然后继续匹配正则表达式的其余部分。如果失败,请尝试匹配1个字符。如果正则表达式的其余部分不匹配,请在此处尝试2个字符。等等。 “ Perl将始终找到最接近字符串开头的匹配项 。 由于大多数模式都以href=开头,因此它会在字符串中找到第一个href=并查看是否有任何方法可以扩展重复以 ...
  • 我在Regex lazy vs greedy confusion的帮助下找到了一个解决方案。 在像Javascript(我相信的NFA引擎 )那样的正则表达式引擎中,非贪婪只能从左到右匹配最短的匹配 - 从适合最近的右手匹配的第一个左手匹配。 如果一场右手比赛有很多左手比赛,那么它将始终从它到达的第一场比赛开始(这实际上会给出最长的比赛)。 基本上,它一次通过字符串一个字符询问“这个字符是否匹配?如果是,匹配最短并完成。如果不是,请转到下一个字符,重复”。 我期望它是“在这个字符串中的任何地方都有匹配吗?如 ...

相关文章

更多

最新问答

更多
  • 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
  • 如何通过引用返回对象?(How is returning an object by reference possible?)
  • 矩阵如何存储在内存中?(How are matrices stored in memory?)
  • 每个请求的Java新会话?(Java New Session For Each Request?)
  • css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
  • 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
  • xcode语法颜色编码解释?(xcode syntax color coding explained?)
  • 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
  • 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
  • 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
  • 西安哪有PLC可控制编程的培训
  • 在Entity Framework中选择基类(Select base class in Entity Framework)
  • 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
  • 电脑二级VF有什么用
  • Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
  • 金华英语角.
  • 手机软件如何制作
  • 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
  • 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
  • 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
  • Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
  • 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
  • python的访问器方法有哪些
  • DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
  • 在Ruby中对组合进行排序(Sorting a combination in Ruby)
  • 网站开发的流程?
  • 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
  • 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
  • 透明度错误IE11(Transparency bug IE11)
  • linux的基本操作命令。。。