【发布时间】:2015-10-06 22:08:44
【问题描述】:
我有一个多维数组,格式为:
其中每一行代表一个工作表,每一列代表一种变量。
我想要做的是将数据导出到电子表格中,其中每一行都存储在带有其列的工作表中。 (也许将sim 多维数组分成五个矩阵,然后将它们一起导出到电子表格会更容易)但我不知道这是否是最有效的方法。
这是电子表格的图片:
下面是我的代码,它基本上是从 Excel 中读取表格,并为每种类型的数据模拟 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`
但它说“索引超出矩阵尺寸”,然后我尝试了这段代码
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 张纸,但其中填充了多维数组每行的前 5 个数字。然后我尝试应用num2cell 并运行您的代码,但它再次给出“索引超出矩阵维度”
【问题讨论】:
标签: excel matlab matrix multidimensional-array