声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1274|回复: 2

[图像处理] 菜鸟求助,含参积分那个贴看了,不是很懂,求指点。

[复制链接]
发表于 2011-6-21 10:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
本帖最后由 潮音洞主 于 2011-6-21 13:36 编辑

  clear all
k=linspace(1,5);
for i=1:length(k)
    kk=k(i);
    fun=inline(subs('sin(k*x)*x^2','k',kk));
    y(i)=quadl(fun,1,5);
end
hold on;
plot(k,y,'r')

求教,k=linspace(1,5); kk=k(i);和inline()函数的作用不甚清楚。
我想我自己的公式代替'sin(k*x)*x^2'吧?积分限怎么改呢?我的积分限是0到350000.
谢谢!


本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

发表于 2011-6-21 15:08 | 显示全部楼层
本帖最后由 rocwoods 于 2011-6-21 15:09 编辑

不要再用inline这种老掉牙又低效的函数结构,效率低还不如匿名函数好使。
  1. fun = @(k)@(x) sin(k*x).*x.^2;
  2. k=linspace(1,5);
  3. y = zeros(size(k));
  4. for i = 1:length(k)
  5. y(i) = quadgk(fun(k(i)),0,350000);
  6. end
复制代码
或者用arrayfun,更简洁,一句话:
  1. y = arrayfun(@(k)quadgk(@(x) sin(k*x).*x.^2,0,350000),linspace(1,5));
复制代码

点评

赞成: 5.0
赞成: 5
  发表于 2011-6-21 15:14

评分

1

查看全部评分

 楼主| 发表于 2011-6-21 15:27 | 显示全部楼层
回复 2 # rocwoods 的帖子

非常感谢,可惜用的matlab7.0,没有quadgk。
请问k=linspace(1,5);是什么作用?1,5何意?

点评

看看linspace的帮助文档就清楚了。  发表于 2011-6-21 16:05
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-11 05:45 , Processed in 0.079792 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表