xiaohunhun 发表于 2008-6-22 17:59

matlab 循环的问题!

我想用matlab循环求积分。并把结果保存在文件中,怎么办?

   我的积分函数中含参数a.
f.m如下:
   y=f(x,a)
   y=a*x;

循环求积分为:

for i=1:10
   a=i;
   quad8(f(x,a),0,i);
end

类似这种情况。如何把参数a传进来。

最后,结果怎样写成.txt文件。

sigma665 发表于 2008-6-22 18:06

回复 楼主 的帖子

请搜索精华贴

带参数积分

xiaohunhun 发表于 2008-6-22 18:16

多谢楼上,怎么把结果写到文件里啊!

sigma665 发表于 2008-6-22 18:35

回复 3楼 的帖子

同样搜索精华贴

txt文件读取技巧

xiaohunhun 发表于 2008-6-23 14:22

搜索了,似乎都是读文件的,怎么往里写啊

sigma665 发表于 2008-6-23 15:02

回复 5楼 的帖子

helpfopen 等

你就不能变通一下

xiaohunhun 发表于 2008-6-23 16:05

惭愧,刚开始学。:@L :@L

xiaohunhun 发表于 2008-6-23 16:21

fid = fopen('C:\MATLAB7\work\exp.txt','w');
for i=1:l0
    y(i)=i;
    fprintf(fid,'%6.2f %12.8f\n',y);
end
fclose(fid)

通过debug-----run,运行之后,找不到exp.txt文件怎么回事!!!

xiaohunhun 发表于 2008-6-23 17:03

clear all
k=linspace(0,5);
for i=1:length(k)
    kk=k(i);
    fun=strcat('sin(',num2str(kk),'*x).*x.^2');
    y(i)=quadl(inline(fun),1,5);
end
plot(k,y)

如果fun是非常复杂的函数,这样写太麻烦了,能不能写成函数文件。fun(kk,x).
然后在循环中改变kk。

xiaohunhun 发表于 2008-6-23 17:48

clear all
k=linspace(0,5);
for i=1:length(k)
kk=k(i);
y(i)=quadl(inline(strcat('shiyan(',num2str(kk),',x)')),0,kk);
end

这样也是可以的,其中shiyan(k,x)为定义的函数sin(k*x)*x^2

:lol :lol

xiaohunhun 发表于 2008-6-23 17:49

如果遇到函数中不止一处包括k的情况,那就可以写成函数,而不必每个k都需要 num2str(k)了
页: [1]
查看完整版本: matlab 循环的问题!