我导入了一个填充数据的矩阵X
,并将每列的相应标题导入MATLAB。现在的问题是如何在标题单元格中按照其相应名称重命名X
的每一列。
我想循环执行此操作。
有人会告诉我如何在这种情况下循环重命名程序?
答案 0 :(得分:2)
我建议从数据中创建structure,而不是单个变量。即使有大量列,这也不会使工作空间混乱,也不会在名称冲突的情况下覆盖工作空间中已有的变量。它会将电子表格中的所有数据保存在一起,并且仍允许按列名访问它。要从列名称的单元格数组和数据矩阵轻松创建结构,请使用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)
创建一个单元格数组,其中每个单元格都是矩阵M
中的一列)
答案 1 :(得分:0)
循环标题列并使用eval创建变量,其名称在矩阵“header”中包含为字符串:
[X,header,~] = xlsread('eaef21.xls',1,'A1:AY541');
for H = 1:size(header,2)
eval([header(1,H), " = X(:,", H, ");"]);
end
将eval
替换为disp
通常非常有用,直到您确信它正常工作为止。使用disp
将帮助您了解正在发生的事情。