3.1 Matlab编程原则

第三章 程序结构与可视化

3.1 Matlab编程

(张德丰数学建模读书笔记)Matlab是一种边解释边执行的语言。

Matlab程序的基本设计原则如下:

(1)百分号“%”后面的内容为程序的注释,要善于运用注释是程序更具有可读性。
(2)养成在主程序开头用clear指令清除变量的习惯,以消除工作空间中其他变量对程序运行的影响,但注意在子程序中不要用clear。
(3)参数值要集中放在程序的开头部分,以便维护。要充分利用Matlab工具箱提供的指令来执行所要进行的运算,在语句行之后输入分号使其及中间结果不显示在屏幕上,一提高运行速度。
(4)input函数可以用来输入一些临时的数据;而对于大量的参数,则要通过建立一个存储的子程序,在子程序中通过调用。
(5)程序尽量模块化,即采用主程序调用子程序的办法,将所有子程序合并在一起执行。
(6)充分利用debugger来进行程序的调试(设置断电,单步执行,连续执行),并成分利用其他工具箱或者图形化用户界面(GUI)的设计技巧,将设计结果集合到一处。
(7)设置好Matlab的工作路径。

Matlab基本结构示例

%说明
清楚命令:清楚workspace中的变量和图形(clear,close)
定义变量:包括全局变量的声明及参数值的设定
逐行执行命令:指Matlab提供的运算指令或工具箱提供的专用函数



控制循环:包括for,if,then,switch,while等语句
逐行执行命令


end
绘图命令:将运算结果绘制出来

(更富在的程序,要调用子程序)

阅读更多

[讨论] 《数据库设计规范》中 “3.1 结构原则

06-08

原稿:rn----------------------------------------------------------rn 3.1 结构原则rnrn 3.1.1 与程序流程有关的状态信息使用域进行限制和定义,不允许最终用户修改定义rnrn 3.1.2 用户可修改的状态列表信息,用数据表来定义,一经创建后,用户只可修改名称,不能修改代码,修改后的名称与原名称应代表相同的意义。rnrn 3.1.3 用户采用列表录入的文字信息,在一个统一的‘系统信息’表中定义,用户可任意创建和修改。用此种方法录入的信息,录入的信息与选择列表不存在约束关系,列表只是作为文字录入的一种辅助手段。rnrn 3.1.4 辅助编码表应至少有两列—代码和名称。只有在名称非常稳定的情况下才可以不使用代码。使用编码表的好处是在应用程序界面中,不同的地方出现同一种数据的录入(如录入数据或查询过滤条件)时只需定义一次选择列表,不会出现两处冲突的现象,方便编程。rnrn 3.1.5 所有记录业务数据的表中都设有‘录入员’和‘录入日期’列,由系统自动记录。rnrn 3.1.6 记录业务数据的表中,根据需要设置‘过程’和‘状态’列,‘过程’列用一位数字或字符记录如录入 审核 记账等过程状态;‘状态’列用一位数字或字符记录如正常 作废 删除等状态。所有表的‘过程’状态的改变日期和操作人由一单独表来记录,表中记录状态改变所涉及的表标识 记录标识 操作人和操作日期。rnrn 3.1.7 基本编码表中应设置‘编码’ ‘缩语’ ‘名称’,‘编码’作为主键与其它表的外键形成对应关系,完成基于主-外键的完整性约束。rnrn 3.1.8 记录录入单据的表中设置‘自动单据号’,由一字符开始以区分单据类型,后跟一数字序列表示序号。‘自动单据号’由系统自动生成,作为主表的主键,不允许用户修改,并作为连接主表和明细表的外键。rnrn 3.1.9 明细表中设置序号列,用于同一单据中排列各行的序号。rnrn 3.1.10 用于记录业务数据的数据表与用于报表的数据表分别存于不同的数据库中,分别命名为‘业务数据库’和‘决策数据库’。‘业务数据库’独立于‘决策数据库’进行设计,‘决策数据库’中的数据来源于‘业务数据库’。rnrn 3.1.11 任意业务流程中应考虑创建 审核 记账 修改 删除 冲红 结存(月结 年结)的处理及满足的条件。rnrn 3.1.12 对于主-明细表结构,设计对应的视图将两表连接用于查询。rnrn 3.1.13 禁止直接用编码或名称列表(in)作为固定的过滤条件对数据进行查询。应将包含此过滤条件的查询做成特定的视图;或在编码表中加入一属性字段用于分类。rnrn 3.1.14 对于业务数据表应设定一个‘存档标记列’,对于新增行或修改行设置该标志,以便将业务数据库中的数据向决策数据库复制时用以选择需更新的数据。当采用数据库复制技术时,也希望设定此标志,以备用。此标志的设置可以由应用程序或触发器来执行。rnrn 3.1.15 决策数据库中应复制基本编码表和辅助编码表,以保持决策数据库数据的完整性。rnrn 3.1.16 同时采用多种分类方法:如果某一实体有多于一种的分类方法,或实体中的每个实例所属的类的数量是不定的,这时实体表和分类表之间的关联是多对多的,即一个实体属于一个分类而同时也属于其它的分类。对于具有可多选的分类标志的表,与分类名称列表之间存在多对多的关系,须按多对多的关系来处理。rn --实体表-- --实体-分类表-- --分类表--rn 实例1 实例 分类 分类1->类别1.1rn 实例2 1对N ... 1对N 分类1->类别1.2rn 实例3 ... 分类2->类别2.1rnrn 3.1.17 业务过程的记录:如果一个业务表(或主表+明细表)依赖另外一个业务表的数据,或在流程上一个业务表根据另一个业务表生成,则该业务表中应有一字段记录另一业务表对应记录的标识。这样的结构使得在流程上的所有数据形成一个链。他有两个作用:其一,可以追述某一过程进行到哪一步;其二,对于流程的回退有用,当流程需要回退到某一步时,将该步骤生成的记录作废,同时作废由此记录生成的所有后续记录,即可以回退到流程的任意一点。由于数据的依赖关系,回退时实际上是从后向前作废记录,直到希望回退到的位置为止。rn 一个业务流程应作为一个事务(在数据库管理系统中的定义),要保证这一事务的完整性。首先一个事务要有一个标识,在这个事务进行过程中所产生的一切数据都应打上事务标识作为标记。可以‘回滚’整个事务,或‘回滚’(从后向前)到事务进行的某一点上,然后再继续进行直到完成事务。rnrn 3.1.18 分类字段的冗余:业务数据表往往关联许多的基本信息表,这些基本信息表中可能含有一些分类字段,而业务数据表的分类统计可能引用这些字段。如果这些分类字段的内容会改变,而又不希望这种改变影响业务数据的统计结果,则在这些业务数据表中应包含这些分类字段,用以记录业务发生时该字段的内容。rnrn 3.1.19 类别和状态的多选:多选分为必选(1..n)和可选(0..n)。如是必选,在设计时要有说明,在程序实现中应有控制和检查。两个可选的类别或状态表可以合并为一个表,再与引用此表的主表形成多对多的关系rnrn 3.1.20 财务记账的处理:由凭证生成各种帐目(总帐 明细帐 日记帐 部门帐 往来帐 项目帐以及备查帐)时,有两种处理方法:一种是各账本不生成表,需要时临时生成,在月结时一次生成月结帐;另一方法是生成表,当对凭证进行修改时,先做删除处理(可用数据库的级联删除功能),再补新凭证然后记帐,或,先做作废处理(各账目中与凭证相关的记录由凭证号关联),再补新凭证然后记帐。当各账本与凭证之间由凭证号关联时,可进行关联查找。rn-------------------------------------------------------------rn请针对其内容的结构,准确性,描述性进行讨论,提出修改格式例:rn3.1.18 ........rnrn原应: .......

没有更多推荐了,返回首页