2013-06-12 76 views
0

例如我的數據是:Matlab的:保存矩陣的函數處理到一個文本文件

data = 

[1000] @(x)x.^2 @sin [0.5] 
[2000] @(x)1./x @cos [0.6] 

我想data保存到文本文件或其他。 (data是一個cell矩陣)。我怎樣才能做到這一點?

+0

難道你不能用''save''(http://www.mathworks.com/help/matlab/ref/save.html)將'data'保存在'mat'文件中嗎? – pm89

+0

@natan我試過sprintf,printf,保存;但我沒有得到我想要的。功能手柄正在製造麻煩。 – newzad

+0

@ pm89我試過了。但gedit無法打開mat文件。我試圖保存ascii,然後文件是空的。 – newzad

回答

1

如果你想保存數據以備將來withing Matlab的所有你需要的用法是這樣的

save('filename','variables separated by spaces'); % to save specific variables 
save('filename'); % to save all variables 

,如果你想再次加載變量到工作區,請使用以下

load('filename'); 

如果您需要將數據寫成可讀的文本文件而不是二進制數據,然後嘗試使用fprintf,幾乎可以像C的fprintf一樣使用。我建議你檢查documentation

這裏有一個小例子:

name = 'John'; 
age = 20; 
enter code here 
file = fopen('yourfilename.txt','w') % w option stantds for 'write' permission 
fprintf(file,'My name is %s and I am %d', name, age); 
fclose(file); % close it when you finish writing all data 

我真的不明白你data矩陣是如何格式化。它似乎不是正確的matlab代碼。

問候;)

1

如果你想通過gedit打開它後,你可以使用evalc當你輸入data讓你在命令窗口看到確切的字符串:

str = evalc('data'); 

然後寫它使用fopenfwrite

fid = fopen('data.txt', 'w'); 
fwrite(fid, str); 
fclose(fid); 
1

要獲得一個匿名函數的字符串表示使用char

S = cell(size(data,1),1); 
for iRow = 1:size(data,1) 
    S{iRow}=sprintf('%d %s %s %d\n', ... 
      data{iRow,1}, char(data{iRow,2}), char(data{iRow,3}), data{iRow,2}); 
end 

,然後寫S到輸出文件。

相關問題