在matlab中如何输出一个函数的图像 怎样在MATLAB中显示出这类函数的图像?

作者&投稿:单于杰 (若有异议请与网页底部的电邮联系)

如果要画y=x^3+x^2+x+5在[-20,20]上的图像,可利用以下方法,绘画区间可以自己定义:

方法一:

利用plot函数来绘画图像

x=0:0.1:20;     %规定绘画区间(从-20画到20,中间以0,1为间隔)

y=x.^3+x.^2+x+5;   %确定要绘画的函数,注意不要漏了“.”

plot(x,y)

方法二:

利用ezplot函数来绘画图像

ezplot('x^3+x^2+x+5',[-20,20])

利用ezplot函数可以直接画出函数图像

扩展资料:

MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

参考资料来源:

百度百科-MATLAB



作为示例,首先在M文件内编写如下函数:

% function operation

function [s,n] = calsum(n)

s = 0;

for i = 1:n

    s = s + i;

end

以函数句柄形式调用,函数名作为参数,如下所示:

>> funame = @eg_sum;

>> [sum,n] = feval(funame,100)

函数输出:

sum =

        5050

n =

   100

在MATLAB中输入对数函数主要分为以下两种类型:

一、直接型

以e、2或者是10为底的对数的话,直接输入:y=log(x),y=log2(x),y=log10(x)。例如,a1=log(2.7183);知a2=log2(2);a3=log10(10)。

二、转换性

如果需要求的对数函数是 y=log5(25)这道种不以e、2、10为底的对数,首先需要根据对版数换底公式转换成y=log25/log5来求解。例如,要求解log5(25)、log3(9)、log2(4)这三个对数函数的值权,需要写为:a1=log(25)/log(5);a2=log(4)/log(2);a3=log(9)/log(3)。



ezplot('x^3+x^2+x+5')



A、 imread
imread函数用于读入各种图像文件,其一般的用法为
[X,MAP]=imread(‘filename’,‘fmt’)其中,X,MAP分别为读出的图像数据和颜色表数据,fmt为图像的格式,filename为读取的图像文件(可以加上文件的路径)。例:[X,MAP]=imread(’flowers.tif’,’tif’);比较读取二值图像,灰度图像,索引图像,彩色图像的X和MAP的特点,可以利用size函数用来显示数组的维数,了解数据的特点。
B=size(a) 返回数组a 的维数。

B、 imwrite
imwrite函数用于输出图像,其语法格式为:
imwrite(X,map,filename,fmt)
imwrite(X,map,filename,fmt)按照fmt指定的格式将图像数据矩阵X和调色板map写入文件filename。

C、 imfinfo
imfinfo函数用于读取图像文件的有关信息,其语法格式为
imfinfo(filename,fmt)
imfinfo函数返回一个结构info,它反映了该图像的各方面信息,其主要数据包括:文件名(路径)、文件格式、文件格式版本号、文件的修改时间、文件的大小、文件的长度、文件的宽度、每个像素的位数、图像的类型等。

2.MATLAB中图像文件的显示
imshow
imshow函数是最常用的显示各种图像的函数,其语法如下:
imshow(X,map)其中X是图像数据矩阵,map是其对应的颜色矩阵,若进行图像处理后不知道图像数据的值域可以用[]代替map。(1) 二进制(二值)图像显示方法,在MATLAB中一幅二值图像是uint8或双精度的,该矩阵仅包含0和1。如果希望工具箱中的函数能将图像理解为二进制的,那么所有数据都要是逻辑数据,必须对其进行设置(将所有数据标志均设置on).可以对数据利用“~”取反操作实现图像逆转即黑白反色。(2) 灰度图像的显示方法,正常情况下无需指定灰度图像的调色板格式。可以是使用imshow函数指定要显示灰度级数目,格式 imshow(I,n),n为指定的灰度级数目。用户也可以指定数据的范围,格式imshow(I,[low high])其中low 和high参数分别为数据数组的最小值和最大值。如果为空矩阵([]),那么imshow函数将自动进行数据标度。(3) 索引图像,imshow(x,map)对于x的每个个像素,imshow显示存储map中相应行的颜色。(4) RGB图像的显示,它直接对颜色进行描述而不使用调色板,格式imshow(RGB)。RGB(:,:,1) RGB(:,:,2)   RGB(:,:,3)(5) 特殊显示,如多幅图像的显示,需要显示多幅图像时。可以使用figure语句,它的功能就是重新打开一个图像显示窗口。例:
I=imread(‘rice.tif’);
Imshow(I);
J=imread(‘flowers.tif’);
figure,imshow(J);
也可以将多幅图像显示在同一个单独的图像窗口中,有两种方法:一种是联合imshow和subplot函数;另一种是联合使用subimage函数和subplot函数,subplot(m,n,p)这种格式将图形窗口划分为m*n个矩形显示区域并激活第p个显示区域。
A
[x1,map1]=imread('trees.tif');
[x2,map2]=imread('forest.tif');
subplot(1,2,1),imshow(x1,map1)
subplot(1,2,2),imshow(x2,map2)
B
[x1,map1]=imread('trees.tif');
[x2,map2]=imread('forest.tif');
subplot(1,2,1),subimage(x1,map1)
subplot(1,2,2),subimage(x2,map2)
3.MATLAB中灰度直方图的显示

MATLAB图像处理工具箱提供了imhist函数来计算和显示图像的直方图,imhist函数的语法格式为:
imhist(I,n)
imhist(X,map)其中imhist(I,n)计算和显示灰度图像I的直方图,n为指定的灰度级数目,默认值为256。imhist(X,map)计算和显示索引色图像X的直方图,map为调色板。例:
I = imread('rice.tif');
imshow(I)
figure, imhist(I)
4.对比度增强如果原图像f(x,y)的灰度范围是[m,M],我们希望调整后的图像g(x,y)的灰度范围是[n,N],那么下述变换, ,就可以实现这一要求。
MATLAB图像处理工具箱中提供的imadjust函数,可以实现上述的线性变换对比度增强。Imadjust函数的语法格式为:
J = imadjust(I,[low_in high_in],[low_out high_out])
J = imadjust(I,[low_in high_in],[low_out high_out])返回图像I经过直方图调整后的图像J,[low_in high_in]为原图像中要变换的灰度范围,[low_out high_out]指定了变换后的灰度范围。其详细的用法可参见《计算机图像处理与识别技术》。例:
I = imread('pout.tif');
J = imadjust(I,[0.3 0.7],[]);
imshow(I), figure, imshow(J)

5.图像类型转换:
图像类型之间的转换有时非常有用。MATLAB提供的图像类型转换函数

函数

功能

dither

使用抖动方法,根据灰度图像船舰二进制图像和根据RGB图像创建索引图像

 gray2ind

根据一幅灰度图像创建索引图像

 grayslice

使用阈值截取方法,根据一幅灰度图像创建索引图像

 im2bw

使用阈值截取方法,根据一幅灰度图像,索引图像或RGB图像创建二进制图像

 ind2gray

根据一幅索引图像创建一幅灰度图像

 ind2rgb

根据一幅索引图像创建一幅RGB图像

 mat2gray

通过数据缩放,在根据矩阵数据创建一幅灰度图像

 rgb2gray

根据一幅RGB图像创建一幅灰度图像

 rgb2ind

根据一幅RGB图像创建一幅索引图像

上表中函数有类似的调用格式:函数的输入参数是图像数据矩阵(如果是索引图像,那么输入参数还包括调色板),返回值是转换后的函数(包括索引函数的调色板),只有函数im2bw的调用格式不同,其输入参数中还包括一个截取阈值,超过此阈值的像素被截取为1否则为0。示例:
A、load trees
BW = im2bw(X,map,0.4);
imview(X,map),imview(BW)B、
I = imread('snowflakes.png');
X = grayslice(I,16);
imview(I)
imview(X,jet(16))
6.MATLAB还提供了图像存储类型之间的转换函数
这些函数包含im2doble、im2uint8和 im2uint16,这些函数可以自动的进行原始数据的重新标度和偏移.调用格式简单,输入为图像矩阵,输出为转换后的图像:如:以下命令将一个描述双精度RGB1图像的矩阵(数据范围为[0,1]转换为uint8的图像矩阵([0,255]范围内)RGB2=im2uint8(rgb1);也可以使用MATLAB函数对图像存储类型进行转换。例如,double函数可以将uint8或 uint16的数据转化为双精度数据。存储类型之间的转变将改变matlab及其工具箱理解图像数据的方式,如果用户希望转换后得到的数组能够被正确的理解为图像数据,那么转换时需要重新标度或偏移数据。当使用较少的类型来描述数字图像时,通常可能丢失用户图像的一些信息。
7.图像格式之间的转换
可以间接利用图像读写函数来完成;首先使用imread函数按照原有的图像格式进行图像读取,然后调用imwrite函数对图像进行保存,并指定图像的保存格式。如将BMP格式转换为PNG格式,  bitmap=imread(‘mybitmap,bmp’,’bmp’)  imwrite(‘mybitmap,png’,’png’)

matlab图像处理命令
二值图像操作

色图操作

brighten 亮/暗色图
cmpermute 色图中颜色的重排
colormap 设置色图
imapprox 以较少的颜色来近似索引图像
rgbplot 绘制RGB色图
色彩空间变换
hsv2rgb 饱和色彩色图HSV向红绿蓝色图RGB转换
ntsc2rgb 将NTSC制式值转换到RGB颜色空间
rgb2hsv RGB色图M向HSV色图cmap转换
rgb2ntsc 将RGB颜色空间转换到NTSC制式
rgb2ycbcr 将RGB颜色空间转换到YCBCR颜色空间
ycbcr2rgb 将YCBCR颜色空间转换到RGB颜色空间

图像类型判断及其转换
dither 用抖动法(dithering)转换图像
gray2ind 灰度图像向索引图像转换
grayslice 设定阀值将灰度图转换为索引图
isbw 图像为二值图像则返回真
isgray 图像为灰度图像则返回真
isind 图像为索引图像则返回真
isrgb 图像为RGB图像则返回真
im2bw 设定阀值将图像转换为值维图像
im2double 将图像数据阵列转换为double型
im2uint8 将图像数据阵列转换为uint8型
im2uint16 将图像数据阵列转换为uint16型
ind2gray 索引图像向灰度图像转换
ind2rgb 索引图像向RGB图像转换
mat2rgb 将矩阵转换为灰度图
rgb2gray RGB图像向灰度图转换
rgb2ind RGB图像向索引图像转换
图像处理演示函数
dctdemo 二维DCT图像压缩演示
edgedemo 边缘检测演示
firdemo 二维FIR滤波及滤波器演示
imadjdemo 灰度及调整和直方图均衡演示
landsatdemo 陆地卫星颜色合成演示
nrfiltdemo 噪声消除滤波演示
qtdemo 四叉树分解演示
roidemo 特定区域处理演示
图像分析

edge 得到加强图像的边缘
qtdecomp 四叉树分解
qtgetblk 得到四叉树分解的块值
qtsetblk 调整四叉树分解的块值
图像增强
histeq 自动调整直方图
imadjust 灰度级调整
imnoise 引入各种类型的噪声
medfilt2 中值滤波
ordfilt2 执行二维阶统计滤波
wiener2 维纳滤波器的二维滤波
线性滤波conv2 图像卷积
convmtx2 计算二维卷积矩阵
convn 图像的n 维卷积
filter2 二维线性滤波
fspecial 产生预定义的滤波器
medfilt2 中值滤波
wiener2 维纳滤波器的二维滤波

二维线性滤波器的设计
filter2二维线性滤波
fspecial 产生预定义的滤波器
fsample 生成滤波器
freqz2 计算二维滤波器的频率响应
fsamp2 二维FIR滤波器的频率采样设计
fwind1 由用户自定义的两个一维窗口生成一个二维窗口滤波器
fwind2 由一个已知的二维窗口直接生成一个二维滤波器

hamming 创建一个一维窗口
freqspace 生成合适的频率点阵矩阵
ftrans2 频率变换
图像变换
dct 离散余弦变换
dct2 计算二维离散余弦变换
dctmtx 计算离散余弦变换矩阵
dctmtx2 计算二维离散余弦变换矩阵
dctdemo 二维离散余弦变图像压缩矩阵
fft2 得到二维FFT的结果
fftn N维FFT变换
fftshiftn FFT变换结果的逆象限
iradon Radon逆变换
idct 离散余弦离散余弦变换的逆变换
idct2 计算二维离散余弦离散余弦变换的逆变换
radon Radon变换
邻域及块处理
blkproc 执行分块操作
bestblk 选择用于块处理的块尺寸
col2im 对矩阵的列进行块重排
colfilt 利用列式函数进行邻域操作
im2col 将图像块按列重排
nlfilter 执行常规滑动邻域操作
图像的区域处理
rolpoly 选定多边形形状的特定区域
roifilt2 对图像特定区域进行滤波
roifill 指定区域的快速插值
roicolor 根据颜色进行
图像显示
colorbar 对图像增加颜色条
figure 在不同的图像窗口显示不同的图像
getimage 从轴上得到图像数据
montage 多贞图像一次显示
image 显示图像
imagesc 显示亮度图像
imcontour 显示一幅图画的轮廊图
immovie 多帧图像转换为电影
imshow 显示各类图像
subimage 在一幅图形窗口中显示多个图像
subplot 在同一个图形窗口中显示多图
truesize 调整图像显示的大小
warp 纹理乘图功能
zoom 图像的区域缩放
图像文件数据输入/输出
imfinfo 查询图像文件信息
imread 从图像文件中读数据
imwrite 将数据写入到图像文件中
图像的几何操作
imcrop 裁剪余弦中的一部分
interp2 二维数据插补
imresize 同于改变图像尺寸
imrotate 用于进行图像的旋转
像值与统计corr2 计算尺寸相同的两个图像矩阵的相关系数
applylut 利用查找表执行邻域操作
bwarea 返回一幅二值图像的面积
bweuler 对图像的拓扑结构的测量
bwfill 进行区域的填充
bwlabel 对图像中不同目标进行标注
bwmorph 一系列的膨胀与腐蚀操作
bwperim 决定二值图像中目标对象的轴长
bwselect 对目标进行操作
dilate 二值图像的膨胀
erode 二值图像的腐蚀
makelut 创建查找表

MATLAB中如何实现输出一个函数表达式~

1、很简单啊.
2、比如我们输出一个函数f=A*sin(x)-B*exp(C*x)这种表达式,A,B,C是你输入的任何参数.
(1)你写上如下代码的M文件
function f=dispf(A,B,C)
syms x;
f=A*sin(x)-B*exp(C*x);
end
(2)现在你直接在命令窗口输入命令dispf就可以了,比如
>> dispf(12,36,78)
ans =
12*sin(x) - 36*exp(78*x)
>>

r1、r2的值是什么?数值计算必须知道所有常量的值才行。

MATLAB用function定义一个函数后,怎么让这个函数生效?
答:4、其基本形式如图所示:第一行定义函数输入输出;第二三行百分号部分是注释部分,这里注意一定要写,方便以后查看该函数。第四五行编写函数的具体内容。5、这里举一个简单的求和例子。代码如下:function [ c ]=untitled( a ,b )%UNTITLED 求和%,求a+b的和:c=a+b;end。6、点击软件左上角保存...

matlab如何输入函数
答:diff()函数是Matlab的符号函数求导。diff()使用说明:diff(S,'v')——对表达式S中指定符号变量v,计算S的一阶导数 diff(S,'v',n)——对表达式S中指定符号变量v,计算S的n阶导数 diff()应用实例 对于显函数的导数,如y=6x^3-4x^2+x-5 diff('6x^3-4x^2+x-5') 求y的一阶...

matlab中怎么表示一个函数啊
答:x,y)的形式。然后就是定义函数的内容,通俗的说就是怎样由输入参数a,b得到返回值y。比如最简单的y=a+b。总结一下,将下面的代码 function y=myfunction(a,b)y=a+b;保存为一个m文件myfunction.m,调用方式如下。num=myfunction(3,4);这样就可以由函数中的y=a+b得到num的值是3+4=7。

matlab中怎么表示一个函数啊
答:x,y)的形式。然后就是定义函数的内容,通俗的说就是怎样由输入参数a,b得到返回值y。比如最简单的y=a+b。总结一下,将下面的代码 function y=myfunction(a,b)y=a+b;保存为一个m文件myfunction.m,调用方式如下。num=myfunction(3,4);这样就可以由函数中的y=a+b得到num的值是3+4=7。

Matlab中如何输入一个如下所示的分式函数
答:z = 35:80;y = sqrt(((40-z).^2+900)./((40+z).^2+900));plot(z, y)

matlab中如何写一个函数来计算方程式y=0.5exp(x/3)-x*x* sin(x...
答:在MATLAB中,你可以通过以下步骤来编写一个函数来计算给定方程式的值:1. 首先,在MATLAB中创建一个新的.m文件。你可以使用任何文本编辑器来创建此文件,但通常我们会在MATLAB的命令窗口中直接创建。2. 在这个.m文件中,你可以定义一个函数。函数的定义需要以"function"开始,后面紧跟着函数的输出变量和...

matlab中function函数的用法
答:function在MATLAB中怎么用M函数除了直接用函数名调用之外,也可以进行参数传递,使得Matlab应用更加方便。M函数文件以function开头,格式为function输出变量=函数名称(输入变量)语句。可以使用参数。如果Function函数没有任何参数,则Function语句必须要包含空括号。Function函数通过函数名返回一个值。编写一个求...

在matlab gui 中,如何在edit中输入一个函数(变量数不一定),然后输入变量...
答:先应用function定义一个函数呀,然后保存该文件,再到主窗口先输入变量,接着调用该函数名就可以了

matlab怎么定义函数
答:具体如下:通过inline函数定义函数,打开matlab,在命令行窗口中输入“f=inline('5*x+1','x')”,按回车键创建f(x)=5匿名函数定义在命令行窗口中输入“f=@(x)5*x+3”,按回车键定义函数f=@(x)5*x+3,创建m函数在matlab中点击新建,选择函数,可以看到已创建了m函数,可在脚本文件中调用...

matlab中怎么输出一个变量的值
答:MATLAB输出变量方法很多,主要包括以下几类。(1)语句后面不加分号“;”,这是直接输出数值的比较简单的方法。(2)disp(a)直接在命令窗口显示a变量,这种方法输出和第一种差不多。(3)fprintf('a=%f',a)格式控制输出,输出'a='然后再显示输出的变量。(4)save(dir+name,'变量名')保存输出到...