【问题标题】:MATLAB: create a string array with a list of variable names with a given prefixMATLAB:创建一个字符串数组,其中包含具有给定前缀的变量名称列表
【发布时间】:2015-08-04 12:30:19
【问题描述】:

我想将我的工作区中的一些变量的名称存储到一个给定前缀的字符串数组中。特别是,我的工作区中有除其他变量外的“Xaws1”、“Xaws2”、“Xaws3”变量,我希望它们的名称填充一个类似于 {'Xaws1'、'Xaws2'、'Xaws3' 的数组}。 在我的例子中,所有变量名的长度都相同(5 个字符),我想使用“Xaws*”之类的前缀来查找它们。我尝试使用who('Xaws*),但从这个意义上说,输出似乎不可用。我还查看了this post,但到目前为止找不到解决方案。 任何想法将不胜感激,在此先感谢。

【问题讨论】:

  • 我知道这与您的要求相反,但它可能仍然适用:stackoverflow.com/questions/16099398/… 您的变量可能应该是一个单元格数组...看看 cmets 中的链接我链接到的问题

标签: arrays string matlab variables input


【解决方案1】:

您可以使用whos('Xaws*') 执行此操作,之后只需提取name 字段:

vars = whos('Xaws*');
names = {vars.name}

但是,我强烈建议您不要有一堆名为Xaws? 的变量,其中? 是递增数字。而是使用一个单元数组,这样

Xaws{1} = Xaws1;
Xaws{2} = Xaws2;
etc...

【讨论】:

  • 为什么不只是vars = whos('Xaws*')'name' 在这里是什么意思?
  • @LuisMendo 我不知道你能做到。 'name' 只是将 name 字段提取为单元格数组...编辑为使用 * 代替
  • @Dan Weird。 whos('name') 对我不起作用(它只查找名为 'name' 的变量)
猜你喜欢
  • 2017-03-20
  • 2019-05-28
  • 1970-01-01
  • 2022-07-25
  • 2014-01-06
  • 1970-01-01
  • 1970-01-01
  • 2020-04-18
  • 2020-02-28
相关资源
最近更新 更多