使用字符串数组的值来命名变量(Matlab)

Posted

技术标签:

【中文标题】使用字符串数组的值来命名变量(Matlab)【英文标题】:Use Value of String Array to name a variable (Matlab) 【发布时间】:2021-03-14 07:43:23 【问题描述】:

我正在尝试将多个文件的结果合并到一个结构中。

所述结构应命名为以下名称:

result.[FileName1].Result1ofFile1
result.[FileName1].Result2ofFile1
result.[FileName2].Result1ofFile2
...
result.[FileNameX].ResultYofFileX

我将文件名保存在一个字符串数组中。因此

FileName(1) = "abc1"
FileName(2) = "abc2"
and so on

很遗憾,我不知道如何让它发挥作用。

最后它应该是这样的,不需要自己输入 abc-Names:

result.abc1.Result1ofFile1
result.abc2.Result1ofFile2

如何使用存储在数组中的字符串作为变量名?

【问题讨论】:

【参考方案1】:

您可以使用dynamic struct field names。

>> result = struct;
>> FileName = 'test';
>> result.(FileName) = rand(10);
result = 
  struct with fields:

    test: [10×10 double]

或者当使用字符串数组时:

result = struct; 
for k = 1:numel(FileName)
    result.(FileName(k)) = rand(10);
end

【讨论】:

非常感谢!这解决了我的问题:D

以上是关于使用字符串数组的值来命名变量(Matlab)的主要内容,如果未能解决你的问题,请参考以下文章

JS——变量声明变量类型命名规范

Swift - 1 (常量变量字符串数组字典元组循环枚举函数)

matlab eval函数

如何创建从 MATLAB 中的结构中提取的值的字符串数组?

获取以字符串命名的变量的值

python 变量,数组,字符串