求助matlab简单编程,自定义宏编程贝塞尔函数并画出图像。重赏!

EPbeisaierhanshu 本程序主要编写关于贝塞尔函数的各类各阶的图像,用于研究 构成 matlab 240万源代码下载-
&文件名称: EPbeisaierhanshu& & [
& & & & &&]
&&所属分类:
&&开发工具: matlab
&&文件大小: 1 KB
&&上传时间:
&&下载次数: 0
&&提 供 者:
&详细说明:本程序主要编写关于贝塞尔函数的各类各阶的图像,用于研究贝塞尔函数的构成-This program is mainly written about all kinds of images of each order Bessel function used in the study of the formation of Bessel function
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&EPbeisaierhanshu.m
&输入关键字,在本站240万海量源码库中尽情搜索:__装逼之Matlab与Haskell(21)
& & 我们来做一些有意思的事情,通过外界的扫描仪或者照相机之类的,获取你写在纸上的签名,图片一般保存为jpg格式。然后用matlab把图片中的签名通过某种采样方法来采取尽可能少的点来用贝塞尔曲线把你的签名勾勒出来并保存为pdf格式。这个东西感觉起来好像很高大上,我们不妨把这个任务分而治之。现在我们需要做的是采集图片-&采集样本点-&用贝塞尔曲线画出-&保存为pdf格式。
高级做法:应用图像切割。
&&& step1:
&&& 用照相机或者扫描仪获取的图片可以对图像进行操作。
使用imread命令读取图片。
I = imread('文件名.格式后缀');
图片是以矩阵方式存储的,被读取出来就是一个矩阵。
所以I是一个矩阵,一般为三维的,如果是灰度图就是二维的。
function pushbutton1_Callback(hObject, eventdata, handles)
[fname, pname, index] = uigetfile({'*.jpg'; '*.bmp'}, '选择图片');%读取图片
&& str3 = [pname fname];
&& axes(handles.axes1);
&& imshow(str3);&&
&& handles.img = str3&&&& %将图片赋值于句柄
&& guidata(hObject, handles);%更新句柄
function pushbutton2_Callback(hObject, eventdata, handles)
img1 = handles. %将图片赋给img1,就可以对img1进行操作了。
参考函数:使用imshow命令显示图片。 imshow(I);
&&& step2:
&&& 采集样本点,这就是技术的核心了,怎么采点呢?这就的看你的了。
&&& step3:
&&& 用贝塞尔曲线画出图形这一块其实是你的点已经取得相当的好,然后用贝塞尔曲线画出就ok了,在这里,我贴上用鼠标获取端点与控制点的函数画出贝塞尔曲线的代码。其实稍微修改一下就可以变成给你一堆点,照着点画贝塞尔曲线的代码。
画图这一块有一个要提醒大家,一定要有不然hold不住啊!这是为了让每次画的图保留在那里,这比用一个数组存每次的结果好多了。
% project2
% draw a picture of A
% name&&&&&& :Chen Yu
% student ID :
% class&grade:class 2,grade 12
function draw
plot([-1 1],[0 0],'k',[0 0],[-1 1],'k');
xlist = [];
ylist = [];
t&&&& = 0:.001:1;
button= 1;
k&&&& = 0;
while(button ~= 3)
&&& [xnew,ynew,button] = ginput(1);& %get one mouse click
&&& if button == 1
&&&&&&& k = k+1;
&&&&&&& xlist(k) =
&&&&&&& ylist(k) = % add new point to the list
&&&&&&& if k & 1
&&&&&&&&&&& if mod(k,3) == 1
&&&&&&&&&&&&&&& for i = 1:4
&&&&&&&&&&&&&&&&&&& x(i) = xlist(k-i+1);
&&&&&&&&&&&&&&&&&&& y(i) = ylist(k-i+1);
&&&&&&&&&&&&&&& end&&&&&&&&&&&&&&&& %plot spline points and control pts
&&&&&&&&&&&&&&& plot([x(1) x(2)],[y(1) y(2)],'o:',x(2),y(2),'o');
&&&&&&&&&&&&&&& plot([x(3) x(4)],[y(3) y(4)],'c:',x(3),y(3),'cs');
&&&&&&&&&&&&&&& plot(x(1),y(1),'bo',x(4),y(4),'bo');
&&&&&&&&&&&&&&& bx = 3*(x(2) - x(1));
&&&&&&&&&&&&&&& by = 3*(y(2) - y(1));
&&&&&&&&&&&&&&& cx = 3*(x(3) - x(2));
&&&&&&&&&&&&&&& cy = 3*(y(3) - y(2));
&&&&&&&&&&&&&&& dx = x(4) - x(1) - bx -
&&&&&&&&&&&&&&& dy = y(4) - y(1) - by -
&&&&&&&&&&&&&&& xp = x(1) + t.*(bx + t.*(cx + t*dx));
&&&&&&&&&&&&&&& yp = y(1) + t.*(by + t.*(cy + t*dy));
&&&&&&&&&&&&&&& plot(xp,yp); % plot spline curve
&&&&&&&&&&& end
&&&&&&& end
&&& step4:
&&& 保存为pdf格式其实就是你用plot函数画出来之后点save,里面就有pdf格式哦!不过有点小提示,如果你发现你的图片怎么只有一点点,还有一部分那里去了。别着急,你在save的时候把图片的窗口缩小就可以了,这好像有点变态,没办法,设定就是这样的。最后就大功告成,神功已成。
低级做法:
&&&&& step1:显示图像。获取图像矩阵I。提示:在这里图像要hold on。
&&&&& step2:在上面描点并保存下来。接着把保存下来的点作为贝赛尔曲线的输入,用上面代码稍微改一下就可以得出答案。提示:在这里显示图像可以用figure(2),显示第二张图。还有一个point就是你会发现图像显示会倒过来,你只要把纵坐标画图的时候从大到小倒过来既可。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:123382次
积分:4876
积分:4876
排名:第3752名
原创:298篇
转载:70篇
评论:70条怎么找到MATLAB中的贝塞尔函数_百度知道
怎么找到MATLAB中的贝塞尔函数
怎么找到MATLAB中的贝塞尔函数:在Help输入: besselj(nu,Z), bessely(nu,Z), besselh(nu,Z), besseli(nu,Z), besselk(nu,Z)即可找到。贝塞尔函数简介:
一般贝塞尔函数是贝塞尔方程的标准解函数。由于贝塞尔微分方程是二阶常微分方程,需要由两个独立的函数来表示其标准解函数。典型的是使用第一类贝塞尔函数和第二类贝塞尔函数来表示标准解函数。此外,贝塞尔函数也被称为柱谐函数、圆柱函数或圆柱谐波,因为他们是于拉普拉斯方程在圆柱坐标上的求解过程中被发现的。在MatLab中用besselj(NU,Z)来表示:用MatLab的仿真代码是:clear ,format longx=(0:0.01:20)';y_0=besselj(0,x);y_1=besselj(1,x);y_2=besselj(2,x);plot(x,y_0,x,y_1,x,y_2);axis([0,20,-1,1]);title('0阶、一阶、二阶第一类贝塞尔函数曲线图');xlabel('Variable X');ylabel('Variable Y');第二类贝塞尔函数(诺依曼函数)在MatLab中用用bessely(NU,Z)来表示:clear ,format longx=(0:0.01:20)';y_0=bessely(0,x);y_1=bessely(1,x);y_2=bessely(2,x);plot(x,y_0,x,y_1,x,y_2);axis([1,20,-2,1]);title('0阶、1阶、2阶第二类贝塞尔函数曲线图');xlabel('Variable X');ylabel('Variable Y');第三类贝塞尔函数(汉克尔函数)汉克尔函数在MatLab中用BESSELH(NU,K,Z) clear ,format longx=(0:0.01:20)';y_0=besselh(0,2,x);y_1=besselh(1,2,x);y_2=besselh(2,2,x);plot(x,y_0,x,y_1,x,y_2);axis([0,20,-0.5,1]);title('0阶、1阶、2阶第三类贝塞尔函数曲线图');xlabel('Variable X');ylabel('Variable Y');变形第一类贝塞尔函数(modified function of the first kind)变形第一类贝塞尔函数在MatLab中用BESSELI(NU,Z) 表示clear ,format longx=(0:0.01:20)';y_0=besseli(0,x);y_1=besseli(1,x);y_2=besseli(2,x);plot(x,y_0,x,y_1,x,y_2);axis([0,6,0,6]);title('0阶、1阶、2阶变形第一类贝塞尔函数曲线');xlabel('Variable X');ylabel('Varialbe Y');变形第二类贝塞尔函数(modified Bessel function of the second kind)变形第二类贝塞尔函数在MatLab中用BESSELK(NU,Z) 表示clear ,format longx=(0:0.01:20)';y_0=besselk(0,x);y_1=besselk(1,x);y_2=besselk(2,x);plot(x,y_0,x,y_1,x,y_2);axis([0,6,0,6]);title('0阶、1阶、2阶变形第二类贝塞尔函数曲线');xlabel('Variable X');ylabel('Varialbe Y');
其他类似问题
为您推荐:
提问者采纳
bessely(nu, besselh(nu: besselj(nu, besseli(nu,Z), besselk(nu,Z)在Help中,Z),Z),Z)
不好意思 小弟初学 ,请问 里面那个nu指的是什么参数啊,查那个贝塞尔函数表的时候哪个能够体现nu?谢谢你
提问者评价
谢谢你 我找到了
贝塞尔函数的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁【图文】第02讲
MATLAB的控制语句和绘图功能_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
MATLAB的控制语句和绘图功能
上传于||文档简介
&&M​A​T​L​A​B​学​习​必​备
大小:593.00KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢高手帮忙,2个关于xy,并含修正贝塞尔函数的方程,怎样用matlab求解xy,谢谢~~~_百度知道
高手帮忙,2个关于xy,并含修正贝塞尔函数的方程,怎样用matlab求解xy,谢谢~~~
piy区间 -0.*().*K1((9.&#47.^0.5.^0;3.*(.071).*sin(x))=0 x区间 0.*y.&#47.*sin(x-0.959931).&#47.,0 第二个方程含有修正贝塞尔函数其中K0表示第二类零阶修正贝塞尔函数K1表示第二类一阶修正贝塞尔函数 请教高手帮忙看看怎样列程序求解出xy.&#47.;0..*-x).*(cos(x)).*())-y.5;(3.*(.^0./0.^2.*(sin(x)).071).8;0;0.000100.*sin(x).071)=0 sin(0.&#47.^3)+2.&#47.*(,谢谢;0.8.071);(9.000115.*K0((9.^2.*sin(x))+(9.&#47.*0两个含xy的方程分别为(cos(x)-1.*()./0
这里还有一个刚提问的相关问题,关于第二类零阶修正贝塞尔函数的网址贴不上去.html哪位高手帮忙看看,问题编号是 question&#47
提问者采纳
fprintf('首先..,或简称贝塞尔函数,又称汉克尔函数(Hankel function),具体包括;besselh - 第三类贝塞尔函数.8*(,(9;=&nbsp,&nbsp,Z;由于这里求得的x不符合0-pi区间的要求;y&%,&nbsp,试图使用符号数学工具箱求解析解,考虑直接用数值方法求解方程(使用优化工具箱fsolve函数),&;besselk&&-8;&nbsp.6g\n&#39,y]=solve(eq1;options=optimset(&#39。&nbsp,x);=&MATLAB提供了计算贝塞尔函数的函数、积分等符号运算..957676,&y)&:besselj - 第一类贝塞尔函数;zdx0&nbsp.8*(;=7;&nbsp,有问题请追问:x&- 第二类贝塞尔函数,前面用符号数学工具箱求出的解与使用fsolve得到的结果相差2*x),Z为函数自变量.;&y&-1e-5];.&nbsp.8*(;[pi/2;=&nbsp,&nbsp.&&options);-1;&nbsp,因而调用了数值方法求解得到的结果(注意;sin(x-0;%..000115*sin(x))+(9;=&nbsp.8*(.4360562y&nbsp,供参考;.,nu为贝塞尔函数的阶数.5*y*&nbsp.&nbsp,&nbsp.5*0;.5*0;x0,详情请参见另一个问题的回答;。代码如下:syms&nbsp,Z)J&=&nbsp.5*0,K0(x).071);y&nbsp,&nbsp。&[x;=&x&nbsp,&fsolve(@&&nbsp,有兴趣可自行验证;%;bessely&另外.&nbsp、besselk(1;=&nbsp,名称和调用方式都与基本模块的4个函数完全一致.071)^&iter&#39./(9,又称诺伊曼函数(Neumann function);&nbsp..6g;eqs(X)x&nbsp.&&X(2);Eq1(x;X(1),1)[J,&nbsp.这是因为无法求得解析解.,(9。&=-.6g\n&#39..*sin(x)*&nbsp,x).071);&;,(9;-5;y)&=&besselj(nu,(9;==================================由于百度知道系统抽风;&nbsp,我把主要内容贴到这里;0;f(1)=(cos(x)-1/3*(cos(x))^3)+2*(*2480)/ besseli&nbsp.8*(,但Z可以是复数;&eq2=sin(0;=&&0.*sin(x)*&;得到的结果;这几个函数的调用语法基本相同.;yeq1=(cos(x)-1/3*(cos(x))^3)+2*(*2480)/&nbsp,例如J&nbsp,eq2)得到的结果为,要点只在于怎样计算贝塞尔函数.&=&nbsp,所以.8*(;=&=&&x&nbsp。&nbsp.;y)&nbsp.6g;&nbsp.5*0.3我觉得没有太多需要的说明的;&nbsp,在不同MATLAB版本中的处理方式可能存在差别;- 第二类修正贝塞尔函数;(3*())-y*(sin(x))^2/0.;=&besselk(1,Z)其中.;就你的问题而言;而符号数学工具箱则提供了第一和第二类的4个贝塞尔函数;besselk(1.5*y*&nbsp,&#39。另外值得一提的是;&&nbsp,所以就不多写了.,我使用Maple内核的2008a求解得到上述结果;,但使用MuPad内核的2012b则得到复数解)。&Display'&f&nbsp.1*(.;eqs(x)).071)^0;=&&=&&Eq1(x,&nbsp.5Eq1(x。MATLAB提供了计算贝塞尔函数的函数;f(2)=sin(0;y)&=&nbsp:x&0;- 第一类修正贝塞尔函数.071)^0其实,ierr]&nbsp.&nbsp.&&%;(3*())-y*(sin(x))^2/0,代码如下.000115*sin(x));function&,&nbsp.959931-x)*besselk(0.8*(.;x&besselj(Eq1(x。阶数必须为实数..071)^0,我注意到;sin(x-0,另一个问题的答案“正在提交中”;&nbsp./(9.071)^0.071)^&nbsp,&nbsp。&nbsp:function&nbsp.000115*sin(x));besselj(&nbsp,采用数值方法计算.959931-x)*besselk(0;fprintf(').000115*sin(x))+(9.,上述函数是MATLAB基本模块提供的特殊函数(也就是说不需要任何附加工具箱),非常简单、K1(x)在MATLAB中的表达式分别为besselk(0。&nbsp,这个问题本身并不困难,但支持微分
提问者评价
膜拜,太厉害了
来自团队:
其他类似问题
为您推荐:
贝塞尔函数的相关知识
其他1条回答
购房人给别人发给如风
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 自定义编程鼠标 的文章

 

随机推荐