【发布时间】:2016-02-23 15:18:28
【问题描述】:
如何从可能的名称列表中搜索 Workspace 中的变量名称,然后重命名现有变量并使用其数据。
例子:
A_apple_tree = [2;2;1;4];
AppleTree = [2;2;1;4];
Apple_tree_a5 = [2;2;1;4];
是同一个变量,但名称不同。 我想扫描工作区变量,直到找到一个,然后将其重命名为:
Apple_Tree = [2;2;1;4];
以下代码使用部分字符串搜索显示变量,但是找到的变量名称包含在元胞数组中。使用cell2mat 会将包含变量名称的单元格转换为没有值的字符。
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;
我如何调用现有变量及其数据以供以后使用?
谢谢,
【问题讨论】:
-
这通常表示数据类型选择不当。变量的 name 永远不应该用来表示任何东西。有更好的数据结构来存储这些信息:
arrays、containers.Map用于键/值对等)请重新考虑您的设计。
标签: matlab