我在MATLAB中有以下内容:
data1 = xlsread('C:\Desktop\example.xlsx','PKA1');
data2 = xlsread('C:\Desktop\example.xlsx','PKA2');
一直到24岁。
如何为我创建循环?
这将创建24个变量:data1,data2,data3等,全部对应于PKA1,PKA2,PKA3等。
如何创建一个读入data1,data2的循环,而不是全部写出来?
答案 0 :(得分:3)
不要创建动态变量。阅读here原因。如果每个工作表的内容相同,请使用数组。否则使用单元格数组。使用num2str
将循环变量转换为字符串,并使用公共字符串PKA
将其转换为concatenate。
k = cell(1,24); %Pre-allocation
for k=1:24
data{k} = xlsread('C:\Desktop\example.xlsx',['PKA', num2str(k)]);
end
答案 1 :(得分:-1)
正如@Sardar所说,你不应该使用eval来继续工作。但是,如果您愿意,可以使用eval
喜欢以下内容:
for idx = 1:24
varName = ['data', num2str(idx)]; // concatenate the string
columnName = ['PKA', num2str(idx)];
xlsReadFunc = ['xlsread(''C:\Desktop\example.xlsx'',''',columnName,''''];
finalExp = [varName,'=', xlsReadFun];
eval(finalExp);
end