如何将matlab中的数据写入文件?

计算出来的x,y,z都是100×100的矩阵,我想将x,y,z中的这些数据按照顺序写入到txt中,按照x,y,z的顺序排成三列,便于导入三维软件中。。。谢谢~

你确定是100*100,那么你要么先把x转换为一列,或者x,y,z分别保存一个txt文件
x=rand(100,1);
y=rand(100,1);
z=rand(100,1);
fid=fopen('data.txt','w');
fprintf(fid,'%f %f %f\r\n',[x,y,z]);
fclose(fid);追问

我试了一下 好像不太对啊
??? Error using ==> fprintf
Invalid file identifier. Use fopen to generate a valid file identifier.
出现了上面这个。。。麻烦再帮我看一下

追答

应该没问题啊,我这里可以运行啊,你加上下面这句试试
clc;clear;%加上这句
x=rand(100,1);
y=rand(100,1);
z=rand(100,1);
fid=fopen('data.txt','w');
fprintf(fid,'%f %f %f\r\n',[x,y,z]);
fclose(fid);

追问

还是不太对啊 data.txt的保存路径要不要写?怎么写?

追答

默认是写在当前工作目录,不用写,
你的matlab版本多少,我的真心一点问题没有啊
[u,k]=meshgrid(linspace(143.544,157.921,100),linspace(0.1263,0.6836,100));
h=40*k;
v=(u*cos(0.1847)/40+sin(0.1847)*(u.*cos(k)+65*sin(k)-200))./sin(k);
x0=u;
y0=v*sin(0.1847)-65;
z0=v*cos(0.1847);
x1=-cos(k).*cos(h).*x0+sin(k).*cos(h).*y0-sin(h).*z0+200*cos(h);
y1= cos(k).*sin(h).*x0-sin(k).*sin(h).*y0-cos(h).*z0-200*sin(h);
z1=-sin(k).*x0-cos(k).*y0;
surf(x1,y1,z1)
shading interp

x=x1(:);%转换为列
y=y1(:);
z=z1(:);
fid=fopen('data.txt','w');
fprintf(fid,'%f %f %f\r\n',[x,y,z]);
fclose(fid);

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答