我在点击按钮的回调函数中定义的par结构数组不能保存到工作区怎么办

本文最后更新于 2024年2月19日。

在MATLAB的图形用户界面(GUI)中,回调函数通常具有自己唯一的工作空间,此工作空间与MATLAB的基本工作空间是不同的。这意味着在回调函数中定义的变量只在该函数内可见,而不能保存到基础工作区。

但是,你可以通过一种特殊的方式来将变量从回调函数保存到基本工作区,关键在于使用 assignin 函数。assignin 函数可以将变量从函数工作区分配(或保存)到基本工作区或其他工作区。以下是一个示例:

par = struct();  
par.a = 10;  
par.b = 20;  
assignin('base', 'par', par);  

在以上代码中,第一行和第二行是创建一个结构数组并设置它的元素,这与前面的例子相同。assignin 函数接收三个参数:要分配的工作区名称(字符串格式,’base’ 代表基本工作区),要分配的变量名和变量的值。这行代码的效果是把 par 变量保存到基本工作区,这样你就可以在其它地方(如Simulink模型中)使用它了。

所以,你可以在你的按钮点击回调函数中使用这种方法来保存你的 par 结构数组。…