matlab中怎么把自定义函数输出的两列值(x和y)以txt格式保存呢?

%函数文件gs01.mfunction[]=gs01()fort=1513:0.005:1515y=lfg2(t);fprintf('%4d%6.4f\n',t,y);s... %函数文件 gs01.m
function []=gs01()
for t=1513:0.005:1515
y=lfg2(t);
fprintf('%4d %6.4f\n',t,y);
save fy.txt y -ascii -double; %这个保存的不对哦?
end

function y=lfg2(x) %子函数
a=1;
b=1513;
c=0.3;
y=a*exp(-4*log2((x-b)/c)^2);
plot(x,y);%显示竟然没看到坐标点
xlabel('wavelength'),ylabel('guangqiang');
展开
 我来答
AMD百夫长
推荐于2016-10-10 · TA获得超过1.1万个赞
知道大有可为答主
回答量:6343
采纳率:65%
帮助的人:1841万
展开全部
第一种方法:save(最简单基本的)
具体的命令是:用save *.txt -ascii x
x为变量
*.txt为文件名,该文件存储于当前工作目录下,再打开就可以 打开后,数据有可能是以指数形式保存的.
例子:
a =[17 24 1 8 15;23 5 7 14 16 ;4 6 13 20 22 ;10 12 19 21 3 ;11 18 25 2 9 ];
save afile.txt -ascii a
afile.txt打开之后,是这样的:
1.7000000e+001 2.4000000e+001 1.0000000e+000 8.0000000e+000 1.5000000e+001
...
1.1000000e+001 1.8000000e+001 2.5000000e+001 2.0000000e+000 9.0000000e+000
第二种方法:dlmwrite
dlmwrite('a.txt',a,'precision','.0f')
或者是dlmwrite('a.txt',a,'delimiter', '\t')
对于只有一行或者一列的数据,很适用,但是多行的,就乱了
网上有很多这一类似的问题,但是都不是很理想
第三种方法:fopen+fprintf
下面主要介绍这种方法,可以解决以上问题:用fprintf命令:以上面的例子为例:
第一种情况:
>> a=[17 24 1 8 15;23 5 7 14 16 ;4 6 13 20 22 ;10 12 19 21 3 ;11 18 25 2 9 ];
>> fid = fopen('b.txt','wt');
fprintf(fid,'%g\n',a); # \n 换行
fclose(fid);
然后用写字板打开b.txt,内容如下:为列向量
17
23
4
。。。

3
9
第二种情况:
对上面的命令做一下改动:# \n 换行改为\t,table键
>> fid = fopen('b.txt','w');
fprintf(fid,'%g\t',a);
fclose(fid);
然后用写字板打开b.txt,内容如下:为行向量:
17 23 4 10 11 24 5 6 12 18 1 7 13 19 25 8 14 20 21 2 15 16 22 3 9
第三种情况:
综合上面的两个结果,编写以下命令:
fid=fopen('b.txt','wt');%写入文件路径
[m,n]=size(a);
for i=1:1:m
for j=1:1:n
if j==n
fprintf(fid,'%g\n',a(i,j));
else
fprintf(fid,'%g\t',a(i,j));
end
end
end
fclose(fid);
然后用写字板打开b.txt,内容如下:矩阵
17 24 1 8 15
。。。
11 18 25 2 9
说明:以上操作都是在当前的工作目录下完成!下面给出最一般的模型,大家可以试着自己操作,如果需要dat格式,直接把txt换为dat就可以
fid=fopen('C:\Documents and Settings\cleantotal.ped','wt');%写入文件路径
matrix=input_mattrix %input_matrix为待输出矩阵
[m,n]=size(matrix);
for i=1:1:m
for j=1:1:n
if j==n
fprintf(fid,'%g\n',matrix(i,j));
else
fprintf(fid,'%g\t',matrix(i,j));
end
end
end
fclose(fid);。
法语共享君
推荐于2018-03-02 · TA获得超过998个赞
知道小有建树答主
回答量:191
采纳率:0%
帮助的人:105万
展开全部
%函数文件 gs01.m
function []=gs01()
for t=1513:0.005:1515
y=lfg2(t);
fprintf('%4d %6.4f\n',t,y);
save ‘fy.txt’ y -ascii; %这个保存的不对哦?
end

第二个不知道你什么意思
追问
谢谢哈!
这个保存的问题解决了。呵呵~
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
youqiongliu
2013-06-05
知道答主
回答量:16
采纳率:0%
帮助的人:5.7万
展开全部
请问你是怎么保存 的?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式