2009-10-30 40 views
0

在文件中的变量存储为了存储可变DIST到文件优选Excel文件,我们可以使用如何在MATLAB

xlswrite('a.xls', dist) 

dlmwrite('a.txt', dist, ',') 

问题是假设变量dist在程序中处于循环中并且每次程序按照输入运行时返回不同的值,则每次重写a.xls并且I ge t仅写入文件中的最后一个值dist

如何将变量dist的所有值写入文件?

+3

您可以使用'dlmwrite('a.txt',dist,',','--append')'附加到文件。注意在你的情况下,这可能不是最有效的方法... – Amro 2009-10-30 13:37:51

回答

3

为什么不创建一个临时数组来存储dist值的循环大小。然后当循环结束时,只需使用xlswrite函数将数组写入文件即可。

例如...

distValues = zeros(loopIter,1); 
for i = 0:loopIter 

% Make calculations here 

distValues(i) = dist; 
end 

xlswrite('a.xls', distValues); 

如果a.xls已经存在,并且有你想第一次加载,尝试在它的值...

inDist = xlsread('a.xls'); 
distValues = zeros(loopIter,1); 
for i =0:loopIter 

% Make calculations here 

distValues(i) = dist; 
end 

distValues = [inDist; distValues] 

xlswrite('a.xls', distValues); 

我希望帮助

+0

好主意,但如果循环取决于用户是否想要更多地运行它。例如。 dist是在我的程序中计算出来的,然后是用户是否想要再次运行的问题框。如果他回答是,那么只有程序运行。 – anubhav 2009-10-30 13:31:57

+0

我想我不太明白。因此,您在第一次运行程序时计算dist,但如果用户选择再次运行程序,则不计算新的dist? – Shaka 2009-10-30 13:48:47

+0

是的,我再次这样做,但那样循环迭代不固定。无论如何,我解决它与您的想法。我正在使用while循环来检查用户是否想要再次运行,并在循环中引入了i并将其与dist一起使用,并在每次用户选择再次运行时将其加1。谢谢。我是否可以在下一列中存储一个字符串,如'hello'以及dist值,然后再次将一个字符串转换为下一个dist值的行,等等。 – anubhav 2009-10-30 13:55:53