在matlab中如何在一个子函数中调用另一个函数的参数

在matlab中如何在一个子函数中调用另一个函数的参数,第1张

inshow主要用于调用图像索引,比如:
imshow(X,map)
其功能等同于:
image(X)
colormap(map)
但是,inshow的功能要强大一些,比如用于灰度图像,RGB图像,二进制图像,都可以应用。imagesc属于图像缩放函数具体说一些例子:
要显示一副灰度图像,可以调用函数 imshow 或 imagesc (即
imagescale,图像缩放函数) (1) imshow 函数显示灰度图像
使用 imshow(I) 或 使用明确指定的灰度级书目:imshow(I,32)

由于Matlab自动对灰度图像进行标度以适合调色板的范围,因而可以使用自定义
大小的调色板。其调用格式如下:
imshow(I,[low,high])
其中,low 和 high 分别为数据数组的最小值和最大值。 (2) imagesc 函数显示灰度图像
下面的代码是具有两个输入参数的 imagesc 函数显示一副灰度图像
imagesc(1,[0,1]);
colormap(gray);
imagesc 函数中的第二个参数确定灰度范围。灰度范围中的第一个值(通常是0),
对应于颜色映象表中的第一个值(颜色),第二个值(通常是1)则对应与颜色映象表
中的最后一个值(颜色)。灰度范围中间的值则线型对应与颜色映象表中剩余的值(颜色)。 在调用 imagesc 函数时,若只使用一个参数,可以用任意灰度范围显示图像。在该
调用方式下,数据矩阵中的最小值对应于颜色映象表中的第一个颜色值,数据矩阵中的最大
值对应于颜色映象表中的最后一个颜色值。53 RGB 图像及其显示
(1) image(RGB)
不管RGB图像的类型是double浮点型,还是 uint8 或 uint16 无符号整数型,Matlab都
能通过 image 函数将其正确显示出来。 RGB8 = uint8(round(RGB64×255)); % 将 double 浮点型转换为 uint8 无符号整型
RGB64 = double(RGB8)/255; % 将 uint8 无符号整型转换为 double 浮点型
RGB16 = uint16(round(RGB64×65535)); % 将 double 浮点型转换为 uint16 无符号整型
RGB64 = double(RGB16)/65535; % 将 uint16 无符号整型转换为 double 浮点型 (2) imshow(RGB) 参数是一个 m×n×3 的数组54 二进制图像及其显示 (1) imshow(BW)
在 Matlab 70 中,二进制图像是一个逻辑类,仅包括 0 和 1 两个数值。像素 0 显示
为黑色,像素 1 显示为白色。
显示时,也可通过NOT(~)命令,对二进制图象进行取反,使数值 0 显示为白色;1 显示
为黑色。
例如: imshow(~BW) (2) 此外,还可以使用一个调色板显示一副二进制图像。如果图形是 uint8 数据类型,
则数值 0 显示为调色板的第一个颜色,数值 1 显示为第二个颜色。
例如: imshow(BW,[1 0 0;0 0 1])

根据我的经验
如果你的程序放在当前文件夹下面(脚本文件和自编函数在同一文件夹下),或者是matlab的默认搜索路径下,是可以直接被调用的。除此之外的函数调用就要用到一个命令:增加matlab的函数库搜索命令,这样的话,matlab在默认路径搜索完之后,就会去访问用户自定义的路径。
%假设你的主程序m(或者是脚本)在文件夹“我的实验”下,其他要调用的程序在“我的实验\调用函数”下,
%可以采用如下方法增加调用函数文件搜索路径
new=cd;%cd是获得当前路径的命令
new=[new'\调用函数'];
path(path,new);%增加搜索路径
这时候,该文件夹下面的任何函数都可以被调用了。
当然你也可以用
path(path,newpath);%newpath是你要调用的文件夹名字
增加任何路径,比如桌面。

MATLAB默认的工作目录为安装目录下的work目录中,所以你编写的自定义函数都要放在work目录中,并且,MATLAB调用函数不是以函数名为标志,而是以自定义函数保存的文件名标志,鉴于此,你可以把函数文件保存为函数名以方便识别和调用。

脚本文件和函数都可以直接执行,如果函数是无参函数(有参函数只要调用函数时输入参量即可),那么在命令行输入脚本文件名和函数名,都可以执行结果,在这一方面没有什么区别。
函数的好处就是可以有输入参数,而且可以被其他函数调用。
如果是无参函数,那么只要去掉第一行的function定义,那么就和脚本文件一样了。
一般情况下,还是编写函数比较好,便于管理,便于使用!

matlab中的m文件是可以在文件外调用的,如y=myfun(x)是个个函数,可这样调用:
x=[];
y=myfun(x)
如果要调用m文件中的函数,则只能在该m文件内,不能在外部调用,这种函数叫子函数。如:function
y=myfun(x)
a=[];
y=myfunfun(a)
function
f=myfunfun(a)
f=a^2+1;
end
end
这个文件中的myfunfun函数只能在这个函数内使用,不能在外部调用。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12605800.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存