将数据数组从循环写入excel文件的连续列

时间:2013-03-06 16:36:34

标签: excel matlab loops

这是我的代码的一部分。

a = 0;
for i = -3:3
    for j = 1:10
        a(j) = j^i;
    end
    xlswrite('out.xls', a','A1')
end

这里我只获取a文件中out.xlx的最后一个值。但我希望在a文件的连续列中为i的每次迭代填充Excel的值。有什么建议 ? 的更新   我想要这样的输出: -

1.0000   1.0000   1.0000   1  .....
0.1250   0.2500   0.5000   1  .....
0.0370   0.1111   0.3333   1  .....
0.0156   0.0625   0.2500   1  .....
0.0080   0.0400   0.2000   1  .....
0.0046   0.0278   0.1667   1  .....
0.0029   0.0204   0.1429   1  .....
0.0020   0.0156   0.1250   1  .....
0.0014   0.0123   0.1111   1  .....
0.0010   0.0100   0.1000   1  .....

依旧......

2 个答案:

答案 0 :(得分:1)

您生成了一维矢量而不是二维矩阵。这应该有效:

a = 0;
for i = -3:3
    for j = 1:10
        a(j,i+4) = j^i;
    end
    xlswrite('out.xls', a',['A' num2str(i+4) ':J' num2str(i+4)])
end

更好的解决方案是对所有内容进行矢量化:

[X,Y] = meshgrid(-3:3,1:10)
a = X.^Y
xlswrite('out.xls', a','A1:J7')
@EitanT,@ HighPerformanceMark:更改了答案以反映您的评论。我想今天不是我的日子 - 编辑了4次:)

答案 1 :(得分:0)

您正在单元格A1中输入值a。所以它只取数组a的最后一个值。您需要提供整个范围才能输入完整的数组。

尝试这样的事情:

 xlswrite('out.xls', a','A1:J1') 

我希望它有所帮助。