Matlab:将函数句柄矩阵保存到文本文件中

时间:2013-06-12 23:23:53

标签: file matlab cell-array function-handle

例如我的数据是:

data = 

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

我想将data保存到文本文件或其他文件中。 (datacell矩阵)。我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:1)

如果您想使用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 :(得分:1)

如果您想稍后通过gedit打开它,则可以使用evalc获取您在命令窗口中看到的确切字符串data

str = evalc('data');

然后使用fopenfwrite将文件写入文件:

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

答案 2 :(得分: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写入输出文件。