Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在每次程序执行时将数据写入MATLAB中的excel,并将以前的结果保存在以前的列中_Matlab - Fatal编程技术网

如何在每次程序执行时将数据写入MATLAB中的excel,并将以前的结果保存在以前的列中

如何在每次程序执行时将数据写入MATLAB中的excel,并将以前的结果保存在以前的列中,matlab,Matlab,我的实际代码由一个函数组成,该函数接受5个参数,并在数组中返回14个值,与此处发布的代码类似。我的问题是,每次运行调用了calculate函数的程序时,它都会从第4行开始将数据写入C列的test.xlsx文件,但它会覆盖先前从C4存储的计算数据。我希望当主程序第二次运行时,数据应该从D列和第4行写入,第三次写入E4,以此类推。请帮助我找到一个解决方案。如果您可以传递一个计算写入的列数的变量,您可以如下操作: function []=calculate(a,b,c,d) calculation

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

如果您可以传递一个计算写入的列数的变量,您可以如下操作:

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
如果您想有超过26列,您只需添加一个if-else来确定是否添加另一个字母

如果你不能使用计数器,就写一个响应

我希望这有帮助,巴勃罗干杯

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