2

设想:

对于信号处理分析,我正在从其他人那里接收数据。如果我有多个数据文件,每个数据文件代表一段时间,我的标准做法是命名数据向量'data'和时间向量'time',而不是单独命名每个变量名称,因为它们是由文件隔离的。如果我需要对它们进行个体化,我会在调用它们的程序中进行。

但是,我从某个人那里收到了数据,这些数据使他们个性化,所以每个变量都有唯一的名称,'data10', 'data11'

我所有的例程和程序都调用'data'. 有没有办法在不使用的情况下将这些变量名更改'dataxx'为?我的第一个想法是尝试 assignin 函数,但它不接受输入的通配符参数。每次我以自己的结构单独加载文件时,因此使用通配符永远不会有问题,总是只有一个文件以'data'eval'value''data...'

谢谢!

4

1 回答 1

2

如果您从.mat-file 加载这些变量,则可以使用load带有输出的命令:

collectedData = load('dataVariables.mat');

collectedData文件中包含的每个变量都有一个字段.mat。如果您现在要访问变量data10,可以使用动态字段名称来访问它:

collectedData.(sprintf('data%i',10))

值得注意的是,structfun如果您想将函数应用于结构的每个字段而不循环跨字段名称,这将非常有用。

于 2012-08-28T20:23:46.313 回答