用matlab画函数图像怎么解决有零点函数值的图像

matlab 绘制函数的曲面图和等高线.如图其中x的21个值均匀分布在【-5,5】范围,y的31个值均匀分布在【0,10
matlab 绘制函数的曲面图和等高线.如图其中x的21个值均匀分布在【-5,5】范围,y的31个值均匀分布在【0,10】,要求使用subplot(2,1,2)和subplot(2,1,2)将产生的的曲面图和 等高线画在同一个窗口上.
x=linspace(-5,5,21);y=linspace(0,10,31);[xx,yy]=meshgrid(x,y);zz=cos(xx).*cos(yy).*exp(-sqrt(xx.^2+yy.^2)/4);subplot(1,2,1)%我感觉竖着放不如横着放好看,就横放了,&&&&&&&&&&&&&&%如果按要求是要用subplot(2,1,1),&&&&&&&&&&&&&&%下面也相应改成subplot(2,1,2)surf(xx,yy,zz)xlabel('x'),ylabel('y'),zlabel('z')subplot(1,2,2)contour(xx,yy,zz,21),axis&square
名师点评:
才嘛顶说332
与《matlab 绘制函数的曲面图和等高线.如图其中x的21个值均匀分布在【-5,5】范围,y的31个值均匀分布在【0,10》相关的作业问题
在Matlab中坐标轴画成这样比较麻烦.并不是matlab图表的风格但也可以试一试:x=-1:0.1:6;y= x.^2-5*x+3;plot(x,y,'-m');text(3,5,'Y=x^2-5x+3');% GET TICKSX=g
ezplot('x+1/x')matlab无法显示坐标轴(或者说他的坐标轴就是显示在左侧和底部的刻度)x = 1:0.01:100; plot(x,x+1/x); 本身就错了,少了个点x = 1:0.01:100;plot(x,x+1./x); 这样就对了
在Matlab命令窗口下输入&&fun=inline('3*x^2*exp(x)/(exp(x)-1)^2-2','x')&& [x,f,h]=fzero(fun,1)x =&& 2.30&&f =&
命令:y=0:0.001:1;f(1,:)=3*y.*log(y)-1/30*exp(-(30*y-30/exp(1)).^4);f(2,:)=2.5*y.*log(y)-1/30*exp(-(30*y-30/exp(1)).^4);f(3,:)=2.5*y.*log(y)-1/36*exp(-(30*y-30/exp
把Ia=TE*n/60*2*pi/E;P1=E*Ia+Ia^2*(25.3+40);改成Ia=TE.*n/60*2*pi./E;P1=E.*Ia+Ia.^2*(25.3+40); 再问: 请问这个.是什么意思呢? 再答: 表达式中参与乘、除、乘方运算的变量都是数组,你希望的是把数组逐个元素(element-wise)进
d=0:0.001:12; x=d/2000;y=-2.64*10^(-18).*(1./(x.^2+2.*x)+1./(x.^2+2.*x+1)+2.*(log(x.^2+2.*x)-log(x.^2+2.*x+1))).*(1./(1+1.77.*0.0628.*d));y再试试
syms xezplot(sin(x))figureezplot(x*sin(x))figureezplot(exp(-x)*sin(x))
>> close all>> theta=0:0.01:2*>> a=1;b=0;n=1;>> r=a*cos(b+n*theta);>> subplot(2,2,1)>> polar(theta,r,'r')>> title('a=1,b=0,n=1');%%%%%%%%a的影响>> a=2;b=0
你的C(t)=b、0.9*y(t-1),b是多少我暂时认为C(t)=0.9*y(t-1)t=0:0.5:20;n=length(t);C=zeros(1,n);y=C;C(1)=0;y(1)=1000;for&i=2:n&&&&C(i)=0.9*y(i-1);&nbsp
你是分别绘制呢,还是绘制函数z=f(x)的函数曲线呢?前者,直接用Plot就行;后者,楼上说的方法应该可以.
A=[1.486,3.059,0.1;2.121,4.041,0.1;2.570,3.959,0.1;3.439,4.396,0.1;4.505,3.012,0.1;3.402,1.604,0.1;2.570,2.065,0.1;2.150,1.970,0.1;1.794,3.059,0.2;2.121,3.615,0
这个最大值是4.7994,不知道6.6659是怎么算出来的呢.很是好奇呢,x=-10:0.0001:10;y=-4.3949*x.^2+29.2961*x-44.0220;plot(x,y,'b'),max(y)ans&=&&&&4.7994图片如下:
程序:f=-5:0.001:5;y=1./sqrt(1+(2*pi*f).^2);plot(f,y)xlabel('f')ylabel('y')title('y=1/√[1+(2π f)^2] ')grid on结果:
缺几个乘号.ezplot('-sin(x/2)^4-4*sin(x/2)^2+sin(x/2)^3*sqrt(sin(x/2)^2+4)+sin(x/2)*sqrt(sin(x/2)^2+4)',[0 90])
x=[-2:0.01:4];y=3.5.^(-0.5*x).*cos(6*x);
你没有对y逐个赋值,要先把同长度的y预定义出来,再根据判断逐个赋值x=0:0.1:10;y=for i= 1:length(x) if x(i) 再问: 那如果是0
&&&x&=linspace(-1,1);&&&y=sin(1./x);&&&plot(x,y)
t=0:pi/50:2 (中间的pi/50是步长,如果不合适,可自行更改) y=t*sin(2*t);plot(t,y) 再问: 我试了,根本不行。第一步没问题,第二步输入那个函数之后,就错误。不信,你自己在matlab 上试一下 再答: 我弄错了,这个是数组运算应该用点乘 t=0:pi/50:2* y=
x = 0:0.01:1y=x*exp(-1) plot(x,y)基于matlab的数字图像处理常用函数_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
基于matlab的数字图像处理常用函数
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩3页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢新浪广告共享计划>
广告共享计划
Matlab&图像处理基本操作
Matlab 图像处理基本操作
一、图像基本操作
1.读取图像并显示:
all&&&&&&&
&%清空Matlab工作平台所有变量(准备工作)
I=imread('pout.tif');& %
该图像是Matlab图形工具箱中自带的图像(\toolbox\images\imdemos)
&& imshow(I)
2.检查内存(数组)中的图像:
Size&&&&&&&&&&&&&&&&&&&
Bytes&& Class
291x240&&&&&&&&&&&&&&&&&&
69840& uint8 array
Grand total is 69840 elements
using 69840 bytes
表示该图像采用8位存储方式并占用了69840B的存储空间。
3.实现图像直方图均衡化:
figure,imhist(I)&&&
% 在新图中显示图像I的直方图
I2=histeq(I);& %
均衡化以后的图像存在I2数组中(图像灰度值扩展到整个灰度范围,对比度提高)
figure,imshow(I2)& % 显示均衡化后的图像
figure,imhist(I2)&& %
显示均衡后的灰度值分布情况
8位图像取值范围:[0,255],16位图像取值范围:[0,655351],双精度图像取值范围:[0,1]
4.保存图像:
imwrite(I2,'pout2.png');&&&
% 将图像由原先的tif格式另存为png格式
5.检查新生成文件的信息:
imfinfo('pout2.png')&&&&
% 观察保存图像的文件信息
&&&&&&&&&&&&&&&&&
'pout2.png'&&&&&&&%
&&&&&&&&&&&&&&
FileModDate: '11-Apr-2009
21:55:35'&& % 文件修改日期
&&&&&&&&&&&&&&&&&
36938&&&&&&
% 文件大小
&&&&&&&&&&&&&&&&&&&
'png'&&&&&&&%&文件格式
&&&&&&&&&&&&
FormatVersion:
[]&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
240&&&&&&&
% 文件宽度
&&&&&&&&&&&&&&&&&&&
291&&&&&&&
% 文件高度
&&&&&&&&&&&&&&&&&
8&&&&&&&&&
% 文件位深度
&&&&&&&&&&&&&&&&
ColorType: 'grayscale'& % 颜色类型
&&&&&&&&&&&&&&&&&&&&&&
二、图像处理Matlab的应用:
实例:消除rice.png图像中亮度不一致的背景,并使用阈值将修改后的图像转换为二值图像,使用成员标记返回图像中对象的个数以及统计特性。按照如下步骤进行:
1.读取和显示图像
&& I=imread('rice.png');
&& imshow(I)
2.估计图像背景:
图像中心位置背景亮度强于其他部分亮度,用imopen函数和一个半径为15的圆盘结构元素对输入的图像I进行形态学开操作,去掉那些不完全包括在圆盘中的对象,从而实现对背景亮度的估计。
&& I=imread('rice.png');
&& imshow(I)
background=imopen(I,strel('disk',15));
&& imshow(background)
figure,surf(double(background(1:8:end,1:8:end))),zlim([0,255]);
set(gca,'ydir','reverse');
显示了背景图(左)和背景表面图(右)
3.从原始图像中减去背景图像(原始图像I减去背景图像得到背景较为一致的图像):
I2=imsubtract(I,background);
&& figure,imshow(I2)
4.调节图像的对比度
(图像较暗,可用imadjust函数命令来调节图像的对比度)
I3=imadjust(I2,stretchlim(I2),[0 1]);
&& figure,imshow(I3);
5.使用阈值操作将图像转换为二进制(二值)图像(bw),调用whos命令查看图像的存储信息.
level=graythresh(I3);&& %
图像灰度处理
bw=im2bw(I3,level);&&&&
% 图像二值化处理
figure,imshow(bw)&&&&&&
% 显示处理后的图片
Name&&&&&&&&&&&&
Size&&&&&&&&&&&&&&&&&&&
Bytes& Class
I&&&&&&&&&&&&&
256x256&&&&&&&&&&&&&&&&&&
65536& uint8 array
I2&&&&&&&&&&&&
256x256&&&&&&&&&&&&&&&&&&
65536& uint8 array
I3&&&&&&&&&&&&
256x256&&&&&&&&&&&&&&&&&&
65536& uint8 array
background&&&&
256x256&&&&&&&&&&&&&&&&&&
65536& uint8 array
bw&&&&&&&&&&&&
256x256&&&&&&&&&&&&&&&&&&
65536& logical array
level&&&&&&&&&&&
1x1&&&&&&&&&&&&&&&&&&&&&&&&
8& double array
Grand total is 327681 elements
using 327688 bytes
6.检查图像中对象个数(bwlabel函数表示了二值图像中的所有相关成分并返回在图像中找到的对象个数)
[labeled,numObjects]=bwlabel(bw,4);
&&&numObjects&&
numObjects =
表示图像中的米粒对象个数是101.
7.检查标记矩阵:(imcrop命令进行交互式操作,图像内拉出较小矩形并显示已标记的对象和部分背景内的像素)
grain=imcrop(labeled)
8.观察标记矩阵(用label2rgb将其显示为一副伪彩色的索引图像):
RGB_label=label2rgb(labeled,@spring,'c','shuffle');
&& imshow(RGB_label);
9.测量图像对象或区域的属性(Regionprops,返回一个结构数据)
graindata=regionprops(labeled,'basic')
graindata =
101x1 struct array with
BoundingBox
graindata(40).Area&& %
显示矩阵中第40个元素的属性
graindata(40).BoundingBox,graindata(40).Centroid&&&
% 寻找最近的边缘和中心点
24.0000&& 20.0000
95.4213&& 70.4924
allgrains=[graindata.Area];&&&&
% 创建一个新的向量allgrains,其包含每个米粒的范围
&& whos allgrains
Name&&&&&&&&&&&
Size&&&&&&&&&&&&&&&&&&&
Bytes& Class
allgrains&&&&&&
1x101&&&&&&&&&&&&&&&&&&&&
808& double array
Grand total is 101 elements
using 808 bytes
allgrains(51)&&&&
% 相当于整个矩阵的索引为51的属性是多少,可见与原来得到的结果相同
max(allgrains)&&&
% 获取最大的米粒大小
biggrain=find(allgrains==404)&&&
% 使用find命令返回这个最大尺寸米粒的标记号
biggrain =
mean(allgrains)&& %
获取米粒的平均大小
9.绘制包含30个柱的直方图来说明米粒大小的分布情况
hist(allgrains,30)
(米粒大小分布柱状图)
相关链接:
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 matlab画隐函数图像 的文章

 

随机推荐