如何从可能名称列表中搜索Workspace中的变量名称&然后重命名现有变量并使用其数据。
示例:
A_apple_tree = [2;2;1;4];
AppleTree = [2;2;1;4];
Apple_tree_a5 = [2;2;1;4];
是具有不同名称的相同变量。 我想浏览Workspace变量,直到找到一个变量,然后将其重命名为:
Apple_Tree = [2;2;1;4];
以下代码显示带有部分字符串搜索的变量,但找到的变量名称包含在单元格数组中。使用cell2mat
会将包含变量名称的单元格转换为没有值的char。
namesWorkspace = who;
outStr = regexpi(namesWorkspace, 'apple');
ind = ~cellfun('isempty',outStr);
vars = namesWorkspace(ind);
Apple_Tree = cell2mat(vars);
Apple_Tree = 'apple_tree_a5' %%%..... instead of values for apple_tree_a5;
如何将现有变量与其数据一起调用以用于以后的目的?
谢谢,
答案 0 :(得分:0)
我假设所有给定变量都包含相同数据,因此您可以使用第一次出现的数据。只需在基础工作区中通过evalin
进行分配:
Group *lgroup = new Group;
lgroup->getObjects().push_back(new Group("g1"));
lgroup->getObjects().push_back(new Group("g2"));
lgroup->getObjects().push_back(new Group("g3"));
lgroup->getObjects().push_back(new Group("g4"));
lgroup->getObjects().push_back(new Group("g4"));
考虑到这种情况,没有匹配的变量名,我包含try/catch
语句并抛出错误。更通用的解决方案是将Apple_Tree = evalin('base',vars{1})
与assignin
结合使用,这样您就可以定义单个字符串,例如evalin
并创建一个名为'apple'
的变量,其中包含任何apple-esk变量的数据。
apple