0

例如我的数据是:

data = 

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

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

4

3 回答 3

1

To get the string representation of an anonymous function use 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

and then write S to the output file.

于 2013-06-13T05:24:40.727 回答
1

如果您想保存数据以供以后使用 Matlab 使用,您只需要这个

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

如果要再次将变量加载到工作区,请使用以下命令

load('filename');

如果您需要将数据写入可读的文本文件而不是二进制数据,请尝试使用fprintf, 几乎可以像 C 一样使用fprintf. 我建议你检查文档

这是一个小例子:

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 代码。

问候 ;)

于 2013-06-12T23:49:13.063 回答
1

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

str = evalc('data');

fopen然后使用and将其写入文件fwrite

fid = fopen('data.txt', 'w');
fwrite(fid, str);
fclose(fid);
于 2013-06-12T23:53:29.923 回答