MATLAB如何为每个循环使用xlswrite输入所有数据?

时间:2015-07-24 06:45:10

标签: excel matlab loops

对于每个循环,我提取4个数据。 (例如,mean1,mean2,var1,var2)

所以我想使用xlswrite将数据放入excel文件中。

喜欢:

xlswrite('Table.xlsx', mean(accuracy1), 1, 'A1')
xlswrite('Table.xlsx', mean(accuracy2), 1, 'A2')
xlswrite('Table.xlsx', var(accuracy1), 1, 'I1')
xlswrite('Table.xlsx', var(accuracy2), 1, 'I2')

如您所见,对于第一个循环,我想在A1和A2中输入均值。 和I1和I2中的差异。

但是对于第二个循环,我想在B1和B2中输入新的方法。 还有J1和J2的差异。

对于第三个循环,意味着在C1和C2中以及在K1和K2中的差异。

如何修改代码?

我是否必须为每个循环更改字母(A,B,C和I,J,K)?

1 个答案:

答案 0 :(得分:0)

您可以将结果添加到矩阵中,然后立即写入数据。因此,您可以处理A1:C2之类的范围,而不是单个单元格。我在这里使用了两次xlswrite来电,以免混淆两个部分'。如果您将列I的规范作为第二部分的开头,则最多有8个可能的循环。

M1 = zeros(2,8);                                    % preallocate
M2 = zeros(2,8);                                    % preallocate

for i = 1:8
    accuracy1 = rand(100,1);                        % generate random data 
    accuracy2 = rand(100,1);                        % generate random data
    M1(:,i) = [mean(accuracy1);mean(accuracy2)];    % add mean
    M2(:,i) = [var(accuracy1);var(accuracy2)];      % add variance
end

xlswrite('Table.xlsx', M1, 1, 'A1:H2')              % write first part
xlswrite('Table.xlsx', M2, 1, 'I1:P2')              % write second part