我怎样才能重命名在MATLAB循环中的一组variables?
我已经导入了一个填充了数据的matrixX
,并将其每个列的相应标题导入到MATLAB中。 现在的问题是,我怎样才能重新命名每个X
的列在单元格中的名称。
我想循环做这个。
有谁会告诉我如何在这种情况下循环重命名程序?
我build议从数据中创build一个结构 ,而不是单个variables。 即使有大量的列,这也不会混乱工作区,也不会在名称冲突的情况下覆盖工作区中已经存在的variables。 它将保留来自电子表格的所有数据,并允许按列名称访问它。 要从列名称的单元数组和数据matrix中轻松创build结构,请使用cell2struct :
>> colnames = {'odds','evens'}; >> data = [1 2;3 4;5 6]; >> spreadsheet_structure = cell2struct(num2cell(data,1), colnames, 2) spreadsheet_structure = odds: [3x1 double] evens: [3x1 double]
( num2cell(M,1)
创build单元arrays,其中每个单元是来自matrixM
的列)
循环遍历标题列并使用eval创build名称在string“标题”中包含为string的variables:
[X,header,~] = xlsread('eaef21.xls',1,'A1:AY541'); for H = 1:size(header,2) eval([header(1,H), " = X(:,", H, ");"]); end
另外,用disp
代替上面的eval
通常是非常有用的,直到你满意地按照你的意愿工作。 使用disp
将帮助你理解正在发生的事情。