如何使用matlab将Excel工作表的多个数组写入不同的Excel工作表

时间:2014-06-18 12:27:32

标签: excel matlab

在Excel工作表中,我有A1:X1,A2:X2....A30:X30中的数据。我在120101中有120102AD1:AD30等值。我希望xlsread阅读A1:X1xlswrite的数据,其中AD1的名称为120201。 我想一次为所有数组执行此操作,一次xlswrite个。                                                                                                        这是我用于5个数组的代码,(A1:X5)和AD1:AD5
(我希望代码为30行,否则我应该编写30个开关案例)

clc;
clear all;
format long
a=xlsread('entiredata.xls',1,'A1:X5');
k=size(a)
b= a.';
h=xlswrite('har.xls',b);
q=xlsread('har.xls',1,'A1:E24');
fname=xlsread('entiredata.xls','AD1:AD5');


for f=1:length(fname)
d=fname(f)
d
k=num2str(fname(f));

if f<6
  switch(f)
     case 1
         f=q(1:24);
      case 2
         f=q(25:48);
      case 3
         f=q(49:72);
      case 4
         f=q(73: 96);    
       case 5
         f=q(97:120);


      end


end

 nname=xlswrite(k,f.');
end

1行值(即24个值)

27.69   27.41   27.4    27.4    27.41   27.41   27.43   27.43   27.44   27.44   27.44   27.44   27.47   27.47   27.51   27.51   27.55   27.55   27.61   27.61   27.65   27.65   27.69   27.69

1 个答案:

答案 0 :(得分:0)

我没试过这个,因为没有文件就无法运行你的代码,但我想它会起作用。

我所做的只是为你拥有的每一列(n变量)创建一个循环,然后只为每一列运行你的代码。唯一的变化是我创建了每个迭代中每个列号读取的字符串。检查一下,告诉我你是否理解某些东西或不起作用

clc;
clear all;
format long
n=30;
for ii=1:n
   a=xlsread('entiredata.xls',strcat('A',num2str(ii),':X',num2str(1)));
   b= a.';
   b
   k1=xlsread('entiredata.xls',strcat('AD',num2str(ii),':AD',num2str(1)));

   k=xlswrite(strct('data_',num2str(ii),'.xls'),b); 
end