Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 如果基本工作区中存在结构,请保存它_Matlab_Struct - Fatal编程技术网

Matlab 如果基本工作区中存在结构,请保存它

Matlab 如果基本工作区中存在结构,请保存它,matlab,struct,Matlab,Struct,我试图从Matlab工作区保存一个名为“Sum”的结构。结构(1x1)是在函数内部创建的。 我写了一个小脚本: SumCheck = exist('Sum') if SumCheck == 1; save('SummaryTest','Sum') end 如果我在工作区中运行它,它就会起作用-文件“SummaryTest”是在工作目录中创建的。 当我尝试在我的GUI脚本中运行此脚本时,结构“Sum”出现在工作区中,但测试文件从未保存,并且我没有收到任何错

我试图从Matlab工作区保存一个名为“Sum”的结构。结构(1x1)是在函数内部创建的。 我写了一个小脚本:

    SumCheck = exist('Sum')
    if SumCheck == 1;
        save('SummaryTest','Sum')
    end
如果我在工作区中运行它,它就会起作用-文件“SummaryTest”是在工作目录中创建的。 当我尝试在我的GUI脚本中运行此脚本时,结构“Sum”出现在工作区中,但测试文件从未保存,并且我没有收到任何错误消息。。。。 有人对我如何将这个结构保存为文件有什么想法吗?
提前感谢您的建议。

在GUI中运行时,代码可能会在GUI回调函数工作区而不是基本工作区中检查
Sum
。由于找不到它(
Sum
位于基本工作区),
SumCheck
false
,因此
save
命令不会执行。

在GUI中运行时,代码可能会在GUI回调函数工作区而不是基本工作区中检查
Sum
。由于找不到它(
Sum
在基本工作区中),
SumCheck
false
,因此
save
命令无法执行。

您可能需要使用evalin()

GUI正在执行的回调在其作用域中没有变量,但听起来您要么在基本工作区中显式创建了SummaryTest结构,要么在GUI外部手动创建了它

evalin()允许您指定执行“eval”的位置。。。例如,你可以

evalin('base', 'save(''SummaryTest'', ''Sum''')
我的语法有点生疏,请看一下evalin的文档。注“基本”是指基本工作空间


HTH

您可能需要使用evalin()

GUI正在执行的回调在其作用域中没有变量,但听起来您要么在基本工作区中显式创建了SummaryTest结构,要么在GUI外部手动创建了它

evalin()允许您指定执行“eval”的位置。。。例如,你可以

evalin('base', 'save(''SummaryTest'', ''Sum''')
我的语法有点生疏,请看一下evalin的文档。注“基本”是指基本工作空间


HTH

使用
exist
和特定类型:
exist('Sum','var')
来检查变量,并跳过对现有文件/函数/目录等的所有测试。@Shai谢谢Shai,对于变量,我没有问题,只有这个d$^%^d结构!谢谢你的意见!你这是什么意思?结构只是一个变量,类似于矩阵或单元格数组。使用
exist
和特定类型:
exist('Sum','var')
来检查变量,并跳过对现有文件/函数/目录等的各种测试。@Shai谢谢Shai,我对变量的使用没有问题,只有这个d$^%^d结构!谢谢你的意见!你这是什么意思?结构只是一个变量,就像矩阵或单元格数组一样。感谢janh,结构实际上是使用Sum=evalin('base','Sum')发送到工作区的;只要我将文件加载到GUI中,结构就存在,并且可以使用我在问题中编写的脚本保存。问题是,这似乎只有在我将脚本输入到工作区时才起作用,而不是在我将其添加到GUI函数脚本时……不过,感谢您的建议,您的语法比我的好,我想,我会研究一下,看看是否能使其工作。感谢janh,结构实际上是使用:Sum=evalin('base','Sum')发送到工作区的;只要我将文件加载到GUI中,结构就存在,并且可以使用我在问题中编写的脚本保存。问题是,这似乎只在我将该脚本输入工作区时起作用,而不是在我将其添加到GUI功能脚本时起作用……不过,感谢您的建议,您的语法比我的好,我想,我会研究一下,看看是否可以使其工作。谢谢!我担心这实际上可能是我问题的正确答案!我想这可能只是我将保存脚本的几行放在哪里的问题。谢谢你的意见!谢谢我担心这实际上可能是我问题的正确答案!我想这可能只是我将保存脚本的几行放在哪里的问题。谢谢你的意见!