从multidimensional array传递到电子表格

我有一个multidimensional array,其forms为:

具有5行和可变列数的多维数组

每行代表一张纸,每列代表一种variables。

我想要做的是将数据导出到电子表格中,每一行都存储在一个工作表的列中。 (也许它可以很容易地将simmultidimensional array分成五个matrix,然后将它们一起导出到电子表格),但我不知道这是否是最有效的方法。

这是电子表格的图像:

5张可变数量的列

下面是我的代码,它基本上从Excel中读取工作表,并对每种types的数据进行1000个案例的模拟:

 sim={}; for k = 1 : 5 sheet = xlsread('CB.xlsx', k); [m, n] = size(sheet) for i = 1 : n [f,x] = ecdf(sheet(:,[i])); [f, dup] = unique(f); x = x(dup); randomValues = rand(1, 1000); sim{k,i} = round(interp1(f,x, randomValues)); end end 

试图使用Mikhail_Sam'answer我有以下问题:

 `sheet = 1 for i = 1:5 for j = 1:5 xlswrite('filename.xls',sim(:,i,j),sheet,strcat(char(64+j),int2str(1))) end sheet = sheet+1; end` 

但它说“索引超过matrix尺寸”,然后我试了这个代码sheet = 1 for i = 1:5 for j = 1:size(sheet) xlswrite('filename2.xls',sim{i,j},sheet,'A1:E1000'); end sheet = sheet+1; end sheet = 1 for i = 1:5 for j = 1:size(sheet) xlswrite('filename2.xls',sim{i,j},sheet,'A1:E1000'); end sheet = sheet+1; end sheet = 1 for i = 1:5 for j = 1:size(sheet) xlswrite('filename2.xls',sim{i,j},sheet,'A1:E1000'); end sheet = sheet+1; end该代码将文件写入5张表中,但是它填充了multidimensional array每行的前5个数字。 然后我试着应用num2cell并运行你的代码,但是它又给出了“索引超出matrix维数”

我不知道'最有效的方法',但我这样做:例如,我创build3x3x3matrix,并尝试写入excel:

 sheet = 1 for i = 1:3 for j = 1:3 xlswrite(filename,x(:,i,j),sheet,strcat(char(64+j),int2str(1))); end sheet = sheet+1; end 

我得到了你想要的 – 3张,数据成行。 在您的尺寸replace3。 但我有一个弱点 – 我不记得在multidimensional array中的数字机制 – i是你的例子中的一行,或者j …无论如何,这只是看看数据,并取代ij:如果有必要。

希望能帮助到你 :)

最后我想出了如何从multidimensional array传递到每个电子表格。 我决定将数据安排在同一个multidimensional array中,然后使用A{k}=transpose(vertcat(simulado{k,:}))将数据传递给一个A{k}=transpose(vertcat(simulado{k,:})) ,然后应用一个for循环将数据添加到每个单独分开。

  sheet = 1 for i = 1:5 xlswrite('filename.xls',A{1,i},sheet); sheet = sheet+1; end`