Matlab如何将每一次循环的变量值保存到excel的特定行
我matlab运行了一个循环,非常慢,所以需要把每一次循环的结果不断累积保存到excel文件中。不知道怎么写这个代码,求助,急!在线等!如,fori=1:m%mveryl...
我matlab运行了一个循环,非常慢,所以需要把每一次循环的结果不断累积保存到excel文件中。不知道怎么写这个代码,求助,急!在线等!
如,for i=1:m %m very large.
[aa,bb,cc,dd,ee,ff]=f(stock,temp,theta,timerange); % f very slow,f is a function
RV(j) = aa;
BVt(j) = bb;
JV(j) = cc;
Tau(j) = dd;
Rm(j) = ee;
Rt(j) = ff;
%此处现要将这五个变量保存到excel的第i行,然后下次循环时不改变第i行,将新数据保存到第i+1行
end
第一种回答的方法可以运行,但是目前这种方法导致任务管理器中打开了多个Excel,内存占用过大。希望能够加快保存的速度,也可以保存到mat文件,tet文件,但是格式不能变,也就是一次循环加一行。 展开
如,for i=1:m %m very large.
[aa,bb,cc,dd,ee,ff]=f(stock,temp,theta,timerange); % f very slow,f is a function
RV(j) = aa;
BVt(j) = bb;
JV(j) = cc;
Tau(j) = dd;
Rm(j) = ee;
Rt(j) = ff;
%此处现要将这五个变量保存到excel的第i行,然后下次循环时不改变第i行,将新数据保存到第i+1行
end
第一种回答的方法可以运行,但是目前这种方法导致任务管理器中打开了多个Excel,内存占用过大。希望能够加快保存的速度,也可以保存到mat文件,tet文件,但是格式不能变,也就是一次循环加一行。 展开
1个回答
展开全部
%话说j是什么东西。。。应该是i吧?
xlswrite(filename,[RV(i),BVt(i),JV(i),Tau(i),Rm(i),Rt(i)],['A',num2str(i),':F',num2str(i)])
%filename是文件名(字符串),比如'data.xlsx'
xlswrite(filename,[RV(i),BVt(i),JV(i),Tau(i),Rm(i),Rt(i)],['A',num2str(i),':F',num2str(i)])
%filename是文件名(字符串),比如'data.xlsx'
追问
由于循环次数较多,可不可以使用fopen之类的函数是程序运行时xls处于打开状态从而加快保存?目前这种方法导致任务管理器中打开了多个Excel,内存占用过大。
追答
fopen应该是不能开excel文件的。我换一种方法保存成mat吧。。。
save filename %例如filename为data.mat(不用加引号)
或者
save filename data.txt -ascii
(如果你只想保存那几个变量就写
save filename RV BVt JV Tau Rm Rt %可能加-ascii)
但是这样的问题是每次都要覆盖之前的文件、保存整个vector,不知道会不会很慢。。。
如果存到txt里的话就这样吧:
循环前:fID=fopen(filename,'a'); %filename比如'data.txt'
循环里:fprintf(fID,'%f %f %f %f %f\n',RV(i),BVt(i),JV(i),Tau(i),Rm(i),Rt(i))
循环后:fclose(fID)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |