我试图保存一个名为' Sum'来自Matlab工作区。 struct(1x1)是在函数内创建的。 我写了一个小脚本:
SumCheck = exist('Sum')
if SumCheck == 1;
save('SummaryTest','Sum')
end
这是我在工作区中运行的 - 文件' SummaryTest'在工作目录中创建。 当我尝试在我的GUI脚本中运行它时,结构' Sum'出现在工作区中,但测试文件永远不会保存,我没有收到错误消息.... 有没有人对如何将这个结构保存为文件有任何想法? 提前感谢任何建议。
答案 0 :(得分:2)
您可能需要使用evalin()
您的GUI正在执行的回调在其范围内没有变量,但听起来您已在基本工作空间中显式创建了SummaryTest结构,或者可能在GUI之外手动创建它。
evalin()允许您指定执行“eval”的位置...例如,您可以
evalin('base', 'save(''SummaryTest'', ''Sum''')
我的语法有点生疏,所以看看evalin的文档。注意'base'指的是基础工作区
HTH
答案 1 :(得分:1)
在GUI中运行时,代码可能会检查GUI回调函数工作空间中的Sum
,而不是基本工作空间。由于找不到它(Sum
在基础工作区中),SumCheck
为false
,因此save
命令不会被执行。