求极值点我现在知道有两种方法:

建立一个fun.m文件:

function fx=fun(x)

fx=sin(x)

然后在命令窗口中调用:

z=fmax('fun',[0,pi/2])%同样的函数还有z=fmin('fun',...[0,pi/2]),z=fzero('fun',0.5).z=fsolve('fun',x0,option)...

方程组求解,x0是求根过程的初值。

第二种方法:

a=0:pi/10:2*pi;

b=sin(a);

h=plot(a,b);

x=get(h,'xdata');%获得句柄为h的x数据

y=get(h,'ydata');

imax=find(max(y)==y);%找出y最大值的下标

text(x(imax),y(imax),['\rightarrow最大值=',num2str(...

y(imax))],'fontsize',15,'color','r');

后一种方法是帮同学看程序感觉不错,然后默记下来,不过,错了 其它都记得,就是把x=get(h,'xdata');记成x=get(h,'xdate');总是报get函数错误,没去想是单词错了,郁闷。这个方法的好处在于可以自动找寻y值最大值的下标并标注在曲线上。以后如果函数发生变化最大值坐标点同样可以自动找出。如果在同一个图形窗口中画两个及以上的曲线,则需要用hold on 然后定义第二个曲线的句柄h2=plot(...),重复操作x=get(...及以后即可。如果需要知道最大值点坐标,可以在获得x、y数据后用I1=[x(imax),y(imax)]获得最大值点坐标。当然,如果要知道每条曲线的最大值点坐标,则每个句柄后获得x、y后都要加个上面语句。这种方法对只有一个最大值点效果较好。如果有两个及以上最大值点的时候会出现下述情况:

图像上的文字标注会变成 最大值=9  9  9 (以三个最大值都是9的函数为例)。另外,I=[x(imax),y(imax)]所列举的数字不是一个x坐标值随之一个y坐标值的情况,而是把所有最大值点x的坐标值全列出,然后再列出与前面x坐标值依次对应的y坐标值,例如x=0:pi/10:5*pi;y=sin(x);得到的最大值点坐标是

>>

i =

1.5708    7.8540   14.1372    1.0000    1.0000    1.0000

另外,当x轴变量的步进的值不能正好落在理论上最大值点的x值时,此时最大值y也会和理论最大值不一样。例如x=0:pi/10:2*pi;y=sin(x);当用上述求最大值法求得的最大值是0.99835,当把步进值改成pi/100时候,最大值为0.99999,当把步进值该为pi/1000的时候,最大值为1。

下面的是从网上收集的一些关于get和set的资料,备用。

通用函数get和set

所有对象都有属性来定义它们的特征,正是通过设定这些属性来修正图形显示的方式。尽管许多属性所有的对象都有,但与每一种对象类型(比如坐标轴,线,曲面)相关的属性列表都是独一无二的。对象属性可包括诸如对象的位置、颜色、类型、父对象、子对象及其它内容。每一个不同对象都有和它相关的属性,可以改变这些属性而不影响同类型的其他对象。和每一种对象类型(图形,坐标轴,线,文本,曲面,补片和图象)相关的完整的属性列表在本章的后面给出。

对象属性包括属性名和与它们相联关的值。属性名是字符串,它们通常按混合格式显示,每个词的开头字母大写,比如:’ LineStyle ‘ 。但是,MATLAB识别一个属性时是不分大小写的。另外,只要用足够多的字符来唯一地辨识一个属性名即可。例如,坐标轴对象中的位置属性可以用 ‘ Position ‘, ‘ position ‘ ,甚至是 ‘ pos ‘来调用。

当建立一个对象时,它用一组缺省属性值,该值可以用两种方法来改变。可以用{属性名,属性值}对来建立对象生成函数;或者在对象建立后改变属性。前一种方法的例子是:

» Hf_1=figure( ‘color’, ‘white’ )

它用缺省的属性值建立一个新的图形窗口,只是背景颜色被设为白色而不是缺省的黑色。

为了获得和改变句柄图形对象的属性只需要两个函数。函数get返回某些对象属性的当前值。使用函数get的最简单语法是get(handle, ‘ PropertyName’ )。例如:

» p=get(Hf_1, ‘position’ )

返回具有句柄Hf_1图形窗口的位置向量。

» c=get(Hl_a, ‘color’ )

返回具有句柄Hl_a对象的颜色。

函数set改变句柄图形对象属性,使用语法set(handle, ‘PropertyName’ ,value)。例如:

» set(Hf_1, ‘Position’ ,p_vect)

将具有句柄Hf_1的图形位置设为向量p_vect所指定的值。同样

» set(Hl_a, ‘color’ , ‘r’ )

将具有句柄Hl_a的对象的颜色设置成红色。

一般情况下,函数set可以有任意数目的( ‘PropertyName’ ,PropertyValue)对。比如:

» set(Hl_a, ‘Color’ , ‘r’ , ‘Linewidth’ ,2, ‘LinStyle’ , ‘--’ )

将具有句柄Hl_a的线条变成红色,线宽为2点,线型为破折号。

除了这些主要功能,函数set和函数get还能提供帮助。例如» set(handle, ‘PropertyName’ )返回一个可赋给由handle所描述对象的属性值列表。例如:

» set(Hf_1, ‘Units’ )

[inches|centimeters|normalized|points|{pixels}]

表明由Hf_1所引用的图形的 ‘Unites’属性是五个可允许的字符串,而其中 ‘pixels’ 是缺省值。

如果指定一个没有固定值的属性,那么,MATLAB就会通知如下:

» set(Hf_1, ‘Position’ )

A  figure’s  ‘Position’  property  does  not  have  a  fixed  set  of  property  values。

除了set命令,句柄图形对象创建函数(例如figure,axis,line等等)接受多个属性名和属性值对。例如:

» figure( ‘Color’ , ‘blue’ , ‘NumberTitle’ , ‘off’ , ‘Name’ , ‘My  Figure’ )

创建一个图形窗口,背景为兰色,标有 ‘My  Figure’ 而不是缺省标题 ‘Figure  No.  1’。

为了形象说明上述概念,考虑下面的例子:

» Hf_fig =figure  %  create a figure having an interger handle

Hf_fig=

1

» Hl_line=line  %  create a line having a floating-pointer handle

Hl_line =

59.0002

» set(Hl_line);  %  list settable properties and potential values

Color

EraseMode: [ {normal} | background | xor | none ]

LineStyle: [  {-}  |  --  |  :  |  -.  |  +  |  o  |  *  |  .  |  x  ]

LineWidth

MarkerSize

Xdata

Ydata

Zdata

ButtonDownFcn

Clipping: [ {on} | off ]

Interruptible: [ {no} | yes ]

Parent

UserData

Visible: [ {on} | off ]

» get(Hl_line);  %  list properties and current property values

Color = [1 1 1]

EraseMode = normal

LineStyle = -

LineWidth = [0.5]

MarkerSize = [6]

Xdata = [0 1]

Ydata = [0 1]

Zdata = [ ]

ButtonDownFcn =

Children = [ ]

Clipping = on

Interruptible = no

Parent = [58.0002]

Type = line

UserData = [ ]

Visible = on

在上例中,所创建的线条中的 ‘Parent’属性就是包含线条的坐标轴的句柄。而且所显示的图形列表被分为两组。在空行上的第一组,列出了该对象的独有属性,而空行下的第二组列出所有的对象共有的属性。注意到函数set和函数get返回不同的属性列表。函数set只列出可以用set命令改变的属性,而get命令列出所有对象的属性。在上面的例子中,函数get列出了 ‘Children’和 ‘Type’ 属性,而set命令却没有。这一类属性只可读,但不能被改变,它们叫做只读属性。

与每一个对象有关的属性数目是固定的,但不同的对象类型有不同数目的属性。象上面所显示的,一个线条对象列出了16个属性,而一个坐标轴对象列出了64个属性。显然,透彻地说明和描述所有对象类型的全部属性超出本书的范围。但是,其中的很多属性本书以后要详细讨论,并且列出全部属性。

除了函数set和get,MATLAB还提供了另外两个函数来操作对象和它们的属性。任意对象和它们的子对象可以用 » delete(handle) 来删除。同样 » reset(handle) 将与句柄有关的全部对象属性(除了 ‘Position’ 属性)重新设置为该对象类型的缺省值。

关于matlab中get和set的用法相关推荐

  1. matlab fopen函数的用法,matlab中关于fread函数的用法

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:matlab中关于fread函数的用法 问题详情:用fread打开一个时,需要不需要把开放在某个特回答:必须在Matlab可以搜索的 ...

  2. Matlab中sub2ind函数原理及用法!

    Matlab中sub2ind函数原理及用法!

  3. matlab中uint16(uint8)函数的用法

    matlab中uint16函数的用法: 1.函数用法:将输入参数映射到无符号16位范围之内,即将参数限定在0-65535之间: 2.实例:当输入为一个实数a时: if a<0 输出ans=0; ...

  4. matlab中find()函数用法

    一.基本用法 返回矩阵或向量中非零元素的索引 注意:matlab中下标从1开始 举例: (1)向量 返回非零元素下标 find(vector) x=[1 2 3 0 0 6 7 8 9]; find( ...

  5. matlab中Svmtrain和Svmpredict的用法

    一. svmtrain 的用法 svmtrain实现对训练数据集的训练,获得SVM模型. 用法: svmtrain [options] training_set_file [model_file] 其 ...

  6. matlab fopen函数的用法,matlab中fopen函数与fprintf用法

    matlab中fopen函数在指定文件打开的实例如下: *1)"fopen"打开文件,赋予文件代号. 语法1:FID= FOPEN(filename,permission) 用指定 ...

  7. matlab中signal在哪里,matlab中Signal Builder模块的用法总结

    在网上搜了好久,关于matlab中Signal Builder模块的使用方法很少,由于做仿真时需要用到这个模块,无奈自己摸索过后在此总结下使用方法: 双击Signal Builder模块弹出如下对话框 ...

  8. matlab中libsvm的svmtrain函数用法

    这里的LIBSVM是一个由台湾大学林智仁(Lin Chih-Jen)教授等开发的SVM模式识别与回归的软件包,使用简单,功能强大,本文主要介绍其在Matlab中的使用. 注意不是matlab自带的sv ...

  9. matlab中的sum函数的用法

    Matlab中的sum函数功能非常强大,但是如何使用不慎就会造成难以发现的错误.比如 A1 = [1, 3, 2] S = sum(A1) S_2 = sum(A1,2) S_1 = sum(A1,1 ...

  10. Matlab中exp(x)函数的用法

    目录 1.语法 2.说明 3.示例 e的数字表示形式 欧拉恒等式 为指数函数绘图 4.参考来源: 1.语法 Y=exp(X) 2.说明 Y=exp(X)为数组X中的每个元素返回指数 e x e^x e ...

最新文章

  1. xml serialize
  2. 新建表维护程序SM30
  3. [2019HDU多校第一场][HDU 6590][M. Code]
  4. SAP Spartacus Page Layout学习笔记
  5. 喝酒划拳中的数学(附:摇号)
  6. Scala的partition函数
  7. python django 数据库查询方法总结
  8. debian6 kvm安装虚拟机
  9. 5G网络什么时候普及,5G手机可以用4G的手机卡吗,5G和4G什么区别
  10. 翻译连载 | 附录 B: 谦虚的 Monad-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇...
  11. 使用a标签下载文件,解决页面跳转的问题
  12. (几何学:大圆距离)编写一个程序,提示用户输入地球表面两点经度和纬度的度数然后显示它们的大圆距离。
  13. iText 7 html2pdf 使用总结
  14. 门店超越星巴克背后,瑞幸成咖啡市场新航标
  15. 微信公众号图文中怎么下载封面图?
  16. 珍藏5个在线免费接收国内外手机短信验证码的网络服务
  17. c语言求不定式的最大值,C语言之四则运算表达式求值(链栈)—支持浮点型数据,负数, 整型数据运算...
  18. 知乎日报 API 分析(如何规范api设计)
  19. 盘点三种常见的硬盘接口
  20. unity 运行包无法连接SteamVR问题

热门文章

  1. 55)函数指针和其意义
  2. Docker常见命令
  3. 最近在职场的一些感悟
  4. JAVA之列表集合ArrayList
  5. cf914F. Substrings in a String(bitset 字符串匹配)
  6. [Nescafé41]异化多肽(多项式求逆元)
  7. fork 与 vfork
  8. 如何将你的 MySQL 查询速度提升 300 倍
  9. 深入解析字符串的比较方法:“==”操作符;String.Equals方法;String.Compare方法;String.CompareOrdinal方法。...
  10. 基于ipv6的socket通信(TCP)