Octave程序设计 版权信息
- ISBN:9787302587163
- 条形码:9787302587163 ; 978-7-302-58716-3
- 装帧:70g胶版纸
- 册数:暂无
- 重量:暂无
- 所属分类:>>
Octave程序设计 本书特色
本书对Octave的上千个封装函数加以精挑细选,博采其他编程语言的经典概念,配合Octave编程的基础知识进行分类总结,力求读者可以由浅入深地理解Octave的奥妙。
专业、系统、全面地讲解Octave的编程知识!
配套丰富示例助力读者快速动手实践!
虽然我与Octave的接触仅限于印出九九乘法表和包装过几个附加工具的套件,但是已经能够感受到它的简洁与高效了。基于对开源软件的热爱,尤其是面对着强大竞争者的开源软件,教育推广工作所需要付出的努力,绝对不亚于软件的开发与维护。因此非常荣幸有这个机会将《Octave程序设计》这本书推荐给工程、科学相关工作者,以及所有想要了解Octave的用户。虽然使用习惯不易改变,但是只要大家愿意尝试开源软件,相信终究能够认识到开源的重要性,打开这本书将是达到此目标的关键。
——赵惟伦 RPM Sphere 套件库管理者
本书对于Octave的编程知识讲解细致,并配有丰富的源代码,我在刚刚看到本书初稿的时候便感到眼前一亮。读者们可以像看其他程序设计图书一样,一边看书中的编程知识,一边打开自己的Octave客户端敲几行代码,以这样的方式领略本书的魅力。书中的编程基础知识部分深入浅出,面向对象部分讲解精细,可以帮助读者快速上手,并可以作为日常及教学用书。本书还提供丰富的用例,且覆盖面广,内容涵盖多个领域。由于Octave本身就是一款极为优秀的科学计算软件,加上作者卓越的编程技术,非常适合初学者和学生使用。特别荣幸向读者朋友们推荐本书。
——闫保中 哈尔滨工程大学研究员
本书作为学习Octave编程的基础教程,内容翔实,对Octave的讲解深入浅出,适用于初学及打算深入应用Octave的读者。读者完全可以对照本书使用Octave进行实际的科学计算,而不需要太强的编程基础。本书在编排上层次清晰,充分考虑了读者的自学方式。除本书给定的示例外,读者也能对照本书的内容进行其他程序的编写,具有极强的泛用性,完全符合教材和工具书的定位。
在讲解程序设计方法的同时,本书还在必要时配有常见错误用例,可以帮助读者快速定位自身学习的误区,加深对知识的理解。推荐读者选用《Octave程序设计》作为入门和学习科学计算和程序设计的基础教程。
——吴晗 北京航空航天大学博士
Octave程序设计 内容简介
Octave为GNU项目下的开源软件,旨在解决线性和非线性的数值计算问题。本书由浅入深,全面讲解Octave的功能及编程方法,帮助读者尽快掌握Octave的应用技巧。
本书共14章,层次分明,将复杂的软件体系分解为运算符、数据类型、数据格式等方面,分类进行详细讲解,并提供大量实用程序示例,让读者不仅可以在学习过程中减小阻碍,在实际的科学研究中也方便查找。*后一章讲解Octave不错应用,内容覆盖全面。
本书针对零基础的读者,有Octave或者MATLAB经验的程序设计人员也可以学到很多Octave专享的特性。
Octave程序设计 目录
目录
第1章绪论
第2章Octave简介
2.1Octave的起源
2.2Octave的安装方式
2.2.1源码安装
2.2.2在不同Linux版本上安装Octave软件
2.2.3从Homebrew包管理器安装Octave软件
2.2.4在其他UNIX发行版上安装Octave软件
2.2.5在WSL子系统中安装Octave软件
2.2.6在Docker中安装Octave镜像
2.2.7在Singularity中安装Octave镜像
2.2.8安装Flatpak技术的Octave封包
2.2.9从Snap包管理器安装Octave封包
2.2.10从Guix包管理器安装Octave软件
2.2.11从Spack包管理器安装Octave软件
2.2.12安装Jupyter客户端的Octave内核
2.2.13使用MXE交叉编译并安装Octave软件
2.3Octave的用户界面
2.3.1Linux系统上的Octave
2.3.2Octave的GUI模式
2.3.3Windows系统上的Octave
2.3.4macOS系统上的Octave
2.4Octave的运行要求
第3章运算符与输入、输出
3.1运算符号
3.1.1代数运算符
3.1.2逻辑运算符
3.1.3逻辑运算的零值
3.1.4按元素逻辑运算和(狭义的)逻辑运算的区别
3.1.5赋值运算符
3.1.6复合运算符
3.1.7其他符号
3.1.8运算符的运算顺序
3.1.9运算符的优先级
3.2简单的运算函数
3.3运算符重载
3.4输入、输出函数
3.4.1文件输入、输出函数
3.4.2简单输入函数
3.4.3行输出函数
3.4.4格式化输入、输出函数
3.4.5终端输入、输出函数
3.4.6二进制输入、输出函数
第4章数据类型
4.1数据类型介绍
4.1.1数据类型分类
4.1.2实际意义上的零值
4.1.3原始数据类型判断
4.2数据类型转换
4.2.1自动类型转换
4.2.2强制类型转换
4.2.3数据大小端转换
4.3预定义的特殊数据
第5章数据格式
5.1变量属性
5.1.1由Octave工作空间管理的属性
5.1.2数字类型数据的输入方式
5.2数据精度
5.2.1预置的*大值和*小值
5.2.2预置的无穷小量
5.2.3浮点型格式能够存储的*大整数值
5.3数据的存储空间
5.3.1基本数据类型的存储空间
5.3.2基本变量类型的0值
5.3.3单引号和双引号与字符串的关系
5.3.4转义字符
5.4字符串
5.4.1字符和字符串的关系
5.4.2字符串的索引和切片
5.4.3字符串拼接
5.4.4创建字符串数组
5.4.5字符串数组自动扩充
5.4.6字符串截取
5.4.7字符串分割
5.4.8字符串替换
5.4.9字符串清除
5.5数组
5.5.1数组元素的索引
5.5.2数组的切片
5.5.3创建高维数组
5.5.4拼接二维数组
5.5.5拼接高维数组
5.5.6重新排列矩阵
5.5.7循环更改矩阵
5.5.8改变矩阵维度
5.5.9矩阵排序
5.5.10改变矩阵形状
5.5.11截取或补齐矩阵元素
5.6元胞
5.6.1元胞的索引
5.6.2元胞的串级索引
5.6.3元胞的切片
5.6.4元胞的串级切片
5.6.5元胞的精确切片
5.6.6创建字符串元胞
5.7数据格式转换
5.7.1数字类型变量转换
5.7.2整数类型变量转换
5.7.3元胞类型变量转换
5.7.4二进制类型变量转换
5.7.5十进制类型变量转换
5.7.6十六进制类型变量转换
5.7.7任意进制类型变量转换
5.7.8字符串转换
5.7.9函数句柄转换
5.7.10矩阵转换
5.7.11编码格式转换
5.7.12转义与反转义
5.7.13图形句柄转换
5.8数据查询
5.8.1对比数组分量
5.8.2查询数组分量
5.8.3查询图形对象
5.8.4查询图像对象
5.8.5查询字符串分量
5.8.6查询字符索引
第6章使用Octave进行简单计算
6.1计算之前的准备工作
6.2只用运算符进行计算
6.2.1矩阵自动扩展特性
6.2.2只用运算符进行计算的示例
6.3使用简单的运算函数进行计算
6.3.1通用代数函数
6.3.2通用判断函数
6.3.3通用逻辑函数
6.3.4矩阵基本函数
6.3.5矩阵构造函数
6.3.6矩阵代数函数
第7章脚本
7.1脚本命名规则
7.1.1脚本名称限制
7.1.2脚本路径规则
7.1.3Octave的关键字
7.2脚本结构组成
7.2.1Shebang
7.2.2注释
7.2.3帮助文本
7.2.4运算语句与注释风格
7.3调用脚本时消除歧义
7.4脚本运算流程
7.4.1上下文
7.4.2source()函数指定上下文
7.4.3批量运行脚本
7.4.4嵌套运行脚本
7.4.5使用脚本加载函数
第8章函数
8.1函数命名规则
8.2函数定义方法
8.2.1函数的层次结构
8.2.2eval()函数用法与局部变量作用域改变
8.2.3函数的全局变量
8.2.4全局变量顶替局部变量
8.2.5函数的持久变量
8.2.6申请固定内存空间
8.2.7函数的调用优先级
8.2.8自动加载的函数
8.3输入输出
8.3.1判断函数
8.3.2参数列表判断
8.3.3可变参数列表
8.3.4遍历输入参数列表
8.3.5使用占位符略过参数
8.3.6参数列表分解
8.3.7返回参数检查
8.4函数设计思想
8.4.1函数调用的方法
8.4.2函数传入参数的方法
8.4.3递归式函数
8.5内联函数
8.6逻辑控制
8.6.1顺序逻辑
8.6.2循环逻辑
8.6.3判断逻辑
8.6.4分支逻辑
8.6.5返回语句
8.6.6跳出语句
8.6.7继续语句
8.7回调函数
8.7.1函数的回调思想
8.7.2触发一个回调函数句柄
8.7.3自动绑定的回调函数
8.7.4手动绑定、解绑监听器
8.8测试函数
8.8.1测试步骤
8.8.2测试原则
8.8.3断言函数
8.8.4断言失败函数
8.8.5标准测试项
8.8.6测试程序的其他语法
8.8.7测试函数的输出级别
8.9函数的重载
8.9.1函数的存储空间
8.9.2静态内存分配函数
8.9.3调用内置函数时消除歧义
第9章句柄
9.1句柄介绍
9.2句柄的用途
9.2.1简化函数名
9.2.2引用函数
9.2.3使用句柄消除函数歧义
9.3句柄的特性
9.3.1句柄允许指向的内容
9.3.2feval()函数用法与调用句柄
9.4句柄的常用用法
9.4.1句柄赋值
9.4.2从句柄中获得值
9.4.3匿名函数
9.4.4获得图形对象的句柄
9.4.5设置句柄的参数值
第10章Octave的矩阵操作
10.1创建空间
10.1.1创建线性空间
10.1.2创建对数空间
10.2特殊矩阵
10.2.1生成几种常见特殊矩阵
10.2.2生成眼矩阵
10.2.3生成全1矩阵和全0矩阵
10.2.4按矩阵复制矩阵
10.2.5按元素复制矩阵
10.3随机矩阵
10.3.1标准随机数生成函数
10.3.2派生随机数生成函数
10.3.3随机排列生成函数
10.4示例矩阵
10.5稀疏矩阵
10.5.1稀疏矩阵初始化
10.5.2稀疏矩阵赋值
10.5.3稀疏矩阵的存储空间
10.5.4从外部文件读取稀疏矩阵
第11章GUI控件
11.1文件管理
11.1.1文件夹选择器
11.1.2文件选择器
11.1.3文件保存器
11.2弹窗
11.2.1错误弹窗
11.2.2帮助弹窗
11.2.3文本框弹窗
11.2.4列表弹窗
11.2.5信息框
11.2.6警告弹窗
11.2.7询问弹窗
11.2.8对话框
11.2.9自定义弹窗
11.3可视化组件
11.3.1可视化表格
11.3.2可视化菜单
11.3.3可视化上下文菜单
11.3.4可视化面板
11.3.5单选按钮
11.4工具栏
11.4.1工具栏按钮
11.4.2工具栏拨动开关
11.5进度条
11.6GUI通用功能
11.6.1查询或设置用户自定义的GUI数据
11.6.2返回GUI句柄
11.6.3GUI功能查询
11.6.4GUI运行模式查询
11.6.5精确移动窗口
11.6.6暂停与恢复GUI之外的程序执行
第12章绘图
12.1函数图像绘图函数
12.1.1使用直角坐标绘图
12.1.2同时使用两个独立的y轴绘制两条曲线
12.1.3使用三维坐标绘图
12.1.4使用函数句柄绘图
12.1.5使用给定函数绘图
12.1.6使用极坐标绘图
12.2统计图绘图函数
12.2.1直方图
12.2.2条形图
12.2.3茎叶图
12.2.4阶梯图
12.2.5树干图
12.2.6散点图
12.2.7三维散点图
12.2.8带有分区的散点图
12.2.9帕累托图
12.2.10误差统计图
12.2.11饼图
12.2.12玫瑰图
12.3等高线图绘图函数
12.3.1二维等高线图
12.3.2三维等高线图
12.4向量绘图函数
12.4.1罗盘图
12.4.2向量图
12.4.3三维向量图
12.4.4羽毛图
12.5改变函数图像的刻度
12.5.1x轴为对数刻度、y轴为线性刻度的函数图像
12.5.2x轴为线性刻度、y轴为对数刻度的函数图像
12.5.3x轴为对数刻度、y轴为对数刻度的函数图像
12.5.4x轴为对数刻度、y轴为线性刻度的误差统计图
12.5.5x轴为线性刻度、y轴为对数刻度的误差统计图
12.5.6x轴为对数刻度、y轴为对数刻度的误差统计图
12.6颜色填充
12.6.1伪彩色填充
12.6.2基线填充
12.6.3闭区域填充
12.7彗星图
12.7.1二维彗星图
12.7.2三维彗星图
12.8平面绘图函数
12.8.1三维网格面
12.8.2网格面的隐藏控制
12.8.3三维阴影面
12.8.4带有范数信息的三维阴影面
12.8.5带状图
12.8.6设定阴影效果
12.8.7瀑布图
12.9通用绘图附件
12.9.1标题
12.9.2图例
12.9.3文本
12.9.4坐标轴标签
12.9.5等高线标签
12.9.6坐标轴边框
12.9.7网格线
12.9.8颜色条
12.9.9提醒符号
12.9.10缩放选项
12.9.11旋转选项
12.9.12三维旋转功能
12.9.13缩放坐标轴
12.9.14舍弃或保留绘图
12.9.15返回绘图状态
12.9.16清除当前图形窗口
12.9.17清除当前轴对象
12.9.18将当前图形窗口显示在屏幕的*顶层
12.9.19删除某个图形对象
12.9.20关闭图形窗口
12.9.21关闭当前图形窗口并且清除所有有关的对象
12.9.22文本显示风格
12.10绘制空的画布
12.11绘制子图
12.12动态重绘
12.12.1自动动态重绘
12.12.2手动动态重绘
12.13强制重绘
第13章Octave高级应用
13.1首选项配置
13.2环境变量管理
13.3创建Java类型变量
13.3.1配置环境变量
13.3.2实例化Java对象
13.3.3实例化Java数组对象
13.3.4调用Java方法
13.3.5访问Java变量
13.4Bug管理与提交
13.4.1提出Bug
13.4.2跟踪Bug
13.5编写与调用文档
13.5.1文档的标题部分
13.5.2文档的正文部分
13.5.3文档的从属关系
13.5.4生成文档时支持的可选参数
13.6异常类型
13.6.1异常捕获逻辑
13.6.2断点恢复逻辑
13.7文件后缀为oct类型的程序
13.7.1编译oct程序
13.7.2编译oct程序时支持的可选参数
13.7.3编译oct程序时支持的环境变量
13.7.4oct程序从编译到运行
13.8结构体
13.9类
13.9.1类的定义方式
13.9.2成员变量的定义方式
13.9.3成员常量的定义方式
13.9.4方法
13.9.5静态方法
13.9.6访问权限
13.9.7实例化一个对象
13.9.8构造方法
13.9.9向方法中传入自身实例
13.9.10继承
13.9.11句柄类
13.9.12普通类的对象复制
13.9.13句柄类的对象复制
13.9.14方法重载
13.9.15调用没有被方法重载的超类方法
13.9.16调用被方法重载的超类方法
13.10类Linux命令调用
13.11封装工具箱
13.12日期时间函数
13.12.1时间戳
13.12.2时间字符串
13.12.3本地时间
13.12.4世界时间
13.12.5将时间结构体解析为时间戳
13.12.6将时间结构体解析为时间字符串
13.12.7当前时间
13.12.8日期字符串
13.12.9将时间数组解析为天数
13.12.10将时间数组解析为日期字符串
13.12.11将当前时间解析为时间数组
13.12.12时间运算
13.12.13日历矩阵
第14章Octave实例
14.1字母大小写转换
14.2坐标变换
14.2.1坐标系变换
14.2.2坐标旋转变换
14.3函数图像拼接
14.4改变函数图像的显示效果
14.5改变函数图像的坐标轴
14.6显示函数图像的其他信息
14.7规划问题
14.7.1线性规划问题
14.7.2二次型规划问题
14.8*优解问题
14.8.1无约束条件下的*优解
14.8.2有约束条件下的*优解
14.8.3非线性方程组求解(迭代法)
14.9图像处理
14.9.1图像大小调整
14.9.2图像旋转
14.9.3图像裁剪
14.9.4图像对比度调整
14.9.5图像色度调整
14.9.6图像颜色反转
14.9.7图像傅里叶变换
14.9.8图像特征识别
14.10声频处理
14.11自动控制学科应用
14.11.1创建控制系统模型
14.11.2控制系统模型特征
14.11.3时域分析
14.11.4频域分析
14.11.5极点配置
14.11.6*优控制
14.11.7稳健控制
14.11.8解算器
14.11.9模型降阶
14.11.10控制器降阶
14.12艺术学科应用
14.12.1颜色调节
14.12.2颜色设计
14.12.3平面图像上色与物体上色
第15章商道之我是饭店经理
15.1新的机会(设计饭店类)
15.2招兵买马(设计厨师类)
15.3得力的厨师长(设计主管类)
15.4培训服务员(设计经理类)
15.5潜心研究(设计GUI)
15.6老板的肯定(设计厨师适配器类)
15.7大鹏展翅(处理人员异动)
15.8大结局(设计控制器)
展开全部
Octave程序设计 作者简介
于红博,曾在某世界500强公司担任测试开发工程师,参与内部框架的维护和开发。主要涉及科学计算、图像处理、自动化系统设计、模式识别、神经网络等分支的算法设计和程序设计领域。在业余时间爱好编写、审阅及完善开源软件,对于开源软件的发展做出了一定的贡献。