QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 1244|回复: 0
打印 上一主题 下一主题

Matlab-默认和factory属性--你们知道吗?

[复制链接]
字体大小: 正常 放大

413

主题

36

听众

1854

积分

升级  85.4%

  • TA的每日心情
    开心
    2019-9-18 21:55
  • 签到天数: 258 天

    [LV.8]以坛为家I

    社区QQ达人

    群组2015国赛冲刺

    群组2016美赛公益课程

    群组国赛讨论

    群组第三届数模基础实训

    群组Matlab讨论组

    跳转到指定楼层
    1#
    发表于 2015-10-11 19:50 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
                    默认和factory属性
    当一个对象被创建时,MATLAB就会把默认的属性值赋值于每一个对象。如果这些属性值不是你想要的,那么你必须用set函数选择你想要的值。
    如果你想更改你创建的每一个对象的一个属性,这个过程将变得非常麻烦。由于这个原因,MATLAB允许你修改默认值本身,所以当他们被创建时,所有的对象都会继承所有正确的属性值。
    当一个图形对象被创建时,MATLAB就会通过检测对象的父对象来寻找每一个属性的默认值。如果父对象设置了默认值,那么这个值就会被应用。如果没有设置默认值,那么MATLAB就会检测父对象的父对象,看是否有默认值。以此类推,直到根对象。在这个过程中,MATLAB会应用第一次遇到的默认值。
    默认属性可以在优先级高的图形对象中的任意一点设置。
    例如,默认的图的颜色在根对象中设置,而在这之后的所有图象都有一个新的默认颜色。从另一方面说,默认的坐标轴颜色可以在根对象或图象对象设置。如果坐标的默认颜色在根目录中设置,那么它将应用于所有图象的所有新坐标轴,如果默认的坐标轴颜色在图象对象中设置,它将在当前图象窗中的新坐标轴。
    默认值的设置要用一个字符串,这个字符串由"Default",对象类型和属性名组成。所以默认图象颜色可以通过属性"DefaultFigureColor"来设置,默认的坐标轴颜色可以通过属性"DefaultAxesColor"设置。下面是设置默认值的一些例子
    set(0, 'DefaultFigureColor', 'y')             黄色图象背景
    set(0, 'DefaultAxesColor', 'r')          红色坐标系背景——所有图象中的坐标轴
    set(gcf, 'DefaultAxesColor', 'r')        红色坐标系背景——当前图象坐标轴
    set(gca, 'DefaultLineStyle', ':')        只在当前坐标系中设置默认线型为虚线
    如果你要对已存在的对象的属性进行修改,那么在用完这个属性之后,最好恢复原来的条件。
    如果你在一个函数中修改了一个对象的默认属性值,保存它原来的值,并在跳出这个函数之前恢复它们。
    例如,假如我们用归一化单位创建一系列的图象,我们可以用下面的保存和修复原来的单位。
    saveunits = get(0, 'DefaultFigureUnits');
    set(0, 'DefaultFigureUnits', 'normalized');
    ...
    <MATLAB statements>
    ...
    set(0, 'DefaultFigureUnits', saveunits);
    如果你想要定制MATLAB,每一次都有不同的默认值,那么每次当MATLAB启动时你必须对根对象设置默认值。
    最简单的方法是把默认值存入startup.m文件,每次MATLAB启动时都会自动执行。
    例如,假设你经常使用A4纸,并在图象中经常加入网格线。那么你可以把下面的语句加入到startup.m文件中。
    set(0, 'DefaultFigurePaperType', 'a4letter');
    set(0, 'DefaultAxesXGrid', 'on');
    set(0, 'DefaultAxesYGrid', 'on');
    set(0, 'DefaultAxesZGrid', 'on');
    有三种特殊值字符串用于句柄图形:"remove","factory"和"default"。如果你已经为一个属性设置了默认值,那么"remove"值将会删除你所设置的默认值。
    例如,假设你设置默认的图象颜色为黄色。
    set(0, 'DefaultFigureColor', 'y');
    调用下面的函数将会取消当前的默认值并恢复先前的默认值。
    set(0, 'DefaultFigureColor', 'remove');
    字符串"factory"允许临时跳过当前的默认值,并使用原来的MATLAB的默认值。
    例如,尽管当前的默认颜色为黄色,下面的语句将会用factory创建下面的图象。
    set(0, 'DefaultFigureColor', 'y');
    figure('Color', 'factory');
    第三个特殊的属性值字符串是default,这个属性值迫使MATLAB搜索对象层次结构,直到查到所需属性的一个默认值。如果找到,它就使用该默认值。如果查到根对象,没有找到用户定义的默认值,MATLAB就使用factory默认值。
    它的应用说明如下
    %    Set default values
    set(0, 'DefaultLineColor', 'k');        %    root default = black
    set(gcf, 'DefaultLineColor', 'g');     %    figure default = green
    %    Create a line on thecurrent axes. This line is green.
    Hndl = plot(randn(1, 10));
    set(Hndl, 'Color', 'default');
    pause(2);
    %    Now clear the figuredefault and set the line color to the new
    %    default. The line is nowblack.
    set(gcf, 'DefaultLineColor', 'remove');
    set(Hndl, 'Color', 'default');


    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    数学中国版主团队!
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-4-11 21:54 , Processed in 0.442799 second(s), 51 queries .

    回顶部