用于将数据打印到纯文本文件的脚本

时间:2018-05-17 11:28:15

标签: matlab matrix

x=-1:1; 
y=-2:2;
f(x,y)=1-x^2-y^2

我想将数据打印成包含3列的文本文件:一列用于x,一列用于y,另一列用于f(x, y)=1-x^2-y^2x应该有20个数据点,y应该有40个数据点。

1 个答案:

答案 0 :(得分:1)

假设你的意思是在21 x 41点网格上找到解决方案,你需要这个:

x=-1:.1:1;
y=-2:.1:2;
[xx,yy] = meshgrid(x,y); % create grid for file
f=1-x.^2-y.'.^2; % use broadcasting to calculate
totaldata = [xx(:) yy(:) f(:)]; % concatenate into single matrix
fid = fopen('mydat.txt','w') ; % open file
fprintf(fid,'%f %f %f \n',totaldata); % write data
fclose(fid); % close file

我强烈建议你阅读The MathWork's own tutorial;不是因为写入文件很容易,而是因为你在那里写的内容会给你带来很多错误。第一个是

f(x,y)=1-x^2-y^2
Error using  ^ 
Inputs must be a scalar and a square matrix.
To compute elementwise POWER, use POWER (.^) instead.

所以,使用elementwise POWER,如建议:

x=-1:.1:1; 
y=-2:.1:2;
f(x,y)=1-x.^2-y.^2
Matrix dimensions must agree.

因此需要做更多的工作。这些是基本的MATLAB索引和矩阵运算,这是整个软件的基础。因此建议采用他们自己的教程,或参加MATLAB课程。