首页 > 解决方案 > 每次程序执行时如何在MATLAB中的下一列中将数据写入excel,并将先前的结果保存在先前的列中

问题描述

function []=calculate(a,b,c,d)

 calculation(1)=a*b;
 calculation(2)=a+b+c+d;
 calculation(3)=a*b*c*d;
 calculation(4)=(a+b)-(c+d);
 calculation = calculation';  %transpose of calculation array

 excelfile= 'test.xlsx';
 xlswrite(excelfile,calculation,'C4');

end

我的实际代码由一个函数组成,该函数接受 5 个参数并在类似于此处发布的代码的数组中返回 14 个值。我的问题是,每次我运行calculate()调用该函数的程序时,它都会将数据写入从第 4 行开始的 C 列的 test.xlsx 文件,但它会覆盖先前从 C4 存储的计算数据。我希望在第二次运行主程序时,数据应该从 D 列和 row4 写入,第三次写入 E4,依此类推。请帮我解决。

标签: matlab

解决方案


如果您可以传递一个变量来计算写入的列数,您可以像这样进行:

function [] = calculate(a,b,c,d,counter)

stringvect = ('A':'Z');
posColumn = [stringvect(counter) '4'];

calculation(1)=a*b;
calculation(2)=a+b+c+d;
calculation(3)=a*b*c*d;
calculation(4)=(a+b)-(c+d);
calculation = calculation';  %transpose of calculation array

excelfile = 'test.xlsx';
xlswrite(excelfile,calculation,posColumn);

end

如果您想要超过 26 列,您应该简单地添加一个 if else 来确定是否添加另一个字母。

如果你不能使用计数器,只需写一个回复。

我希望这会有所帮助,巴勃罗欢呼


推荐阅读