从GUI函数更新结构句柄 - Matlab

时间:2015-10-26 19:20:30

标签: matlab

我有一个GUI list的回调函数,它也从我的工作区传入一个结构,所以我可以在函数执行时更新/添加新的值。不幸的是,当我尝试更新/添加到结构时,没有任何反应,就像它在太空中丢失一样。

这是我的回调函数:

function guiUpload(upload_button_h, evt, text_h, list_h, tracks, predictions, models)

// various other code...

predictions.valence(end+1) = valence;

end

如果我将代码作为脚本而不是函数内部运行,那么这种方法很好。

1 个答案:

答案 0 :(得分:1)

问题可能是您没有更改对象predictions的内容,而是更改对象的副本。为了更改变量predictions,您应该执行以下两项操作之一:

a)你将变量设为全局变量。那么函数内部会发生什么反映在外面。 注意:全局变量通常不是一个好习惯。

global predictions
function guiUpload(upload_button_h, evt, text_h, list_h, tracks, models)
// various other code...
predictions.valence(end+1) = valence;
end

b)您的对象predictions是一个类的对象,因此您可以从handle继承该类。然后你不是在复制对象,而是给出类似于在函数内部访问它的指针。

没有看到整个代码就可以说更多了。