gpt4 book ai didi

matlab - 如何仅删除由特定 matlab 脚本创建的变量

转载 作者:太空宇宙 更新时间:2023-11-03 20:18:33 25 4
gpt4 key购买 nike

有没有办法只删除脚本末尾在 matlab 脚本中生成的变量,而不删除脚本中未生成的工作区的任何其他变量?

注意:脚本不是函数。

基本上我想在一行

中执行以下操作
save abc.mat    % saves the whole workspace
some_script % call the script
clear % deletes the variables created by the script along with the whole workspace
load abc.mat % again loads the whole earlier workspace

最佳答案

使用who在脚本之前,然后在脚本之后;比较结果 ( setdiff ) 以检测脚本中创建的变量,然后 clear只有那些。

以下代码中的变量名varsbeforevarsaftervarsnew应保证不在脚本前或脚本内使用。

varsbefore = who; %// get names of current variables (note 1)
some_script
varsafter = []; %// initiallize so that this variable is seen by next 'who'
varsnew = []; %// initiallize too.
varsafter = who; %// get names of all variables in 'varsbefore' plus variables
%// defined in the script, plus 'varsbefore', 'varsafter' and 'varsnew'
varsnew = setdiff(varsafter, varsbefore); %// variables defined in the script
%// plus 'varsbefore', 'varsafter' and 'varsnew'
clear(varsnew{:}) %// (note 2)

代码注释:

  1. who 与输出参数一起使用会返回包含所有变量名称的字符串元胞数组。
  2. 使用clear 的函数形式,输入参数的形式为comma-separated list。从元胞数组生成。

关于matlab - 如何仅删除由特定 matlab 脚本创建的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23803333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com