matlab怎设置静态变量,如何在MATLAB类中获取静态成员变量?

In MATLAB, classes can define Constant

properties, but not “static”

properties in the sense of other

languages like C++. There were beta

releases that experimented with

“Static” properties and the

undocumented attribute remains from

then. However, the Static attribute is

undocumented, should not be used, and

will likely be removed in a future

MATLAB release. R2008a implements it

as a synonym for Constant and provides

no additional functionality beyond

the documented behavior of Constant

properties.

Constant properties may not be changed

from the initial value specified in

the property declaration. There are a

couple of reasons why MATLAB works

the way it does. First, MATLAB has

longstanding rules that variables

always take precedent over the names

of functions and classes and that

assignment statements introduce a

variable if one doesn’t already exist.

Thus, any expression of the form “A.B

= C” will introduce a new variable A that is a struct array containing a

field B whose value is C. If “A.B = C”

could refer to a static property of

class A, then class A would take

precedent over variable A and this

would be a very significant

incompatibility with prior releases

of MATLAB. It would mean that an

m-file containing the assignment

statement “A.B = C” could have its

meaning changed by the introduction

of a class named A somewhere on the

MATLAB path. MATLAB programmers have

always been able to rely on assignment

statements introducing variables that

shadow any other use of the same name.

Second, we have observed that static data is rarely used in other classes except as private data within the class or as public constants. For example, a survey of several Java class libraries found that all public static fields were also final. In MATLAB, Constant properties can be used like “public final static” fields in Java. For data internal to a class, MATLAB already has persistent variables that can be created inside of private or protected methods or local functions privately used by a class. There are also good reasons to avoid static data in MATLAB where possible. If a class has static data, it can be difficult to use the same class in multiple applications because the static data can be a source of conflicts among applications. In some other languages, this is less of an issue because different applications are separately compiled into executables running in different processes with different copies of class static data. In MATLAB, frequently many different applications may be running in the same process and environment with a single copy of each class.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值