《量化投资:以MATLAB为工具》连载(1)基础篇-N分钟学会MATLAB(上)

http://blog.sina.com.cn/s/blog_4cf8aad30102uylf.html

《量化投资:以MATLAB为工具》连载(1)基础篇-N分钟学会MATLAB(上)

 《量化投资:以MATLAB为工具》简介

         《量化投资:以MATLAB为工具》是由电子工业出版社(PHEI)下属旗舰级子公司——北京博文视点资讯有限公司出版的《量化投资与对冲基金丛书》之一,丛书主编为丁鹏博士,《量化投资:以MATLAB为工具》由李洋(faruto)、郑志勇(ArisZheng)编著,主要介绍MATLAB在量化投资中的具体应用。该书预计2014年10月上市,欢迎大家多多支持。在书籍上市之前,会在中国量化投资学会的各种网络平台进行系列连载介绍,方便读者提前一窥书籍概要。

 

《量化投资:以MATLAB为工具》连载(1)基础篇-N分钟学会MATLAB(上)

 

引言

         之所以采用下文这种Q&A的形式来作为《量化投资:以MATLAB为工具》的基础篇,是想让刚刚接触MATLAB的读者能快速有效地了解MATLAB,毕竟在一个注重时间效率的年代大家更喜欢速成的东西。

         本篇形式上参考了刘思喆老师的《153分钟学会R》,当然内容方面结合了MATLAB本身的特色,本篇的内容来源多样,既有来自于MATLAB的官方帮助文档,也有来自我个人的一些总结,还有若干来自MATLAB技术论坛(http://www.matlabsky.com)的讨论问题。

         MATLAB是一个非常庞大的体系,其官方工具箱就有数十种,内部函数有数百个,可以说学习MATLAB是一件没有尽头的事情。

         想来自己接触MATLAB已经有快10年的时间了,在学习MATLAB的道路上接触很多志同道合的朋友,希望这篇简单的“N分钟学会MATLAB(60”能成为你认识、学习MATLAB的好助手。

                                                                                                                                                     李洋(faruto)

 

基础知识

 

(1)     MATLAB是做什么的?为什么MATLAB叫做MATLAB?

         MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

         MATLAB是Matrix和Laboratory两个词的组合,意为矩阵工厂(矩阵实验室),之所以叫做矩阵工厂(矩阵实验室),是因为MATLAB的基本数据单位是矩阵。

 

(2)     MathWorks公司的创始人是谁?

Cleve Moler和Jack Little是MathWorks公司的创始人。其中Cleve Moler是MATLAB首个版本的开发者,Jack Little是信号处理工具箱和控制系统工具箱早期版本的共同开发者和首席架构师。

 

(3)     我是新手,我如何开始学习MATLAB?

如果你的英文阅读还算可以,那么MATLAB官方的帮助文档将是最好且最全面的学习材料,你可以通过在MATLAB的命令窗口(Command Window)中键入“doc”来调出MATLAB官方的帮助文档,或者你也可以在MathWorks公司的官方网站的文档中心(http://www.mathworks.cn/cn/help/documentation-center.html)中查看在线的MATLAB官方帮助文档。

另外MathWorks公司的官方网站的用户中心(http://www.mathworks.cn/matlabcentral/)中有一些MATLAB相关问题的讨论以及一些MATLAB大牛的博客,其中包括Cleve Moler的博客——Cleve's Corner(http://blogs.mathworks.com/cleve),在MATLAB用户中心你可以学习MATLAB。

MATLAB技术论坛(http://www.matlabsky.com)是一个不错的学习MATLAB的中文网站,本书的作者之一李洋(faruto)是MATLAB技术论坛核心管理团队的成员之一,在这个论坛里你可以找到大量的学习资料(代码、数据、视频等)或直接提出问题同大家讨论。

当然,你也可以购买一些MATLAB相关的中外文书籍进行学习。

 

(4)     使用MATLAB需要很厉害的编程能力吗?

         大多数时候并不需要,因为MATLAB有很多的函数和工具箱,官方的工具箱还有数十种,第三方的工具箱不计其数而且每天都在增加,你用到的一般方法和函数都可以在MATLAB的工具箱中找到。

 

(5)     能否简单举一个MATLAB的例子?

生成100个高斯(正态)分布随机数,并对这100个数进行特征描述。

MATLAB代码

Mean_Value = 0;

STD_Value = 1;

Data_Num = 100;

 

x = random('Normal', Mean_Value, STD_Value, Data_Num, 1);

x_dataset = dataset(x);

 

whos

mean_x = mean(x)

std_x = std(x)

summary(x_dataset)

运行结果(由于是生成随机数,多次运行结果可能不同。)

  Name              Size            Bytes  Class      Attributes

 

  Data_Num          1x1                 8  double              

  Mean_Value        1x1                 8  double              

  STD_Value         1x1                 8  double              

  x               100x1               800  double              

  x_dataset            100x1              2300  dataset             

 

mean_x =

   -0.0684

std_x =

    0.9568

x: [100x1 double]

    min        1st quartile    median       3rd quartile    max  

    -2.8216    -0.7437         -0.088884    0.63638         2.3738

 

(6)     如何查看使用的MATLAB的版本信息以及内存信息?

         以通过在MATLAB的命令窗口(Command Window)中键入“version”和“memory”来查看所使用的MATLAB版本信息和内存信息。

运行结果(由于MATLAB版本的不同以及电脑配置的不同,运行结果可能不同。)

>> version

ans =

7.14.0.739 (R2012a)

>> memory

Maximum possible array:             444 MB (4.659e+08 bytes) *

Memory available for all arrays:   1190 MB (1.248e+09 bytes) **

Memory used by MATLAB:              427 MB (4.476e+08 bytes)

Physical Memory (RAM):             3327 MB (3.489e+09 bytes)

 

*  Limited by contiguous virtual address space available.

** Limited by virtual address space available.

 

(7)     MATLAB支持中文吗?

         支持!但在MATLAB中,有相当一部分工具箱的作者都是以英文为母语的,故建议熟练全英文环境。

 

(8)     MATLAB支持自动补全(Tab Completion)么?

         支持!在较新版本中,MATLAB引入了命令自动补全功能,使用Tab键能自动补全MATLAB命令或给出所有可能的补全命令列表。

 

(9)     MATLAB有哪些常用的热键?

         MATLAB除了支持常见的Windows热键(复制:Ctrl+C,剪切:Ctrl+X,粘贴:Ctrl+P等等),在MATLAB文件编辑器(Editor)中,还有如下一些常见的热键:

F5:运行当前的M文件;

F9:运行选中的代码段;

Ctrl+R:注释选中的代码段;

Ctrl+T:反注释选中的代码段;

Ctrl+I:将选中的代码段智能缩进调整。

 

(10)     如何清除变量?

使用clear命令可以清除工作空间(Workspace)中的所有变量,清除工作空间(Workspace)名字为name的变量,使用clear name命令。

 

(11)     如何清空命令窗口(Command Window)?

使用clc命令可以清空命令窗口(Command Window)。

 

(12)     MATLAB常用的数据类型有哪些?

MATLAB支持的基本数据类型有基本数值类型、字符串、元胞数组、结构、函数句柄、Java对象、逻辑类型等等。

         其中基本数值类型包括基本数值类型包括双精度类型、单精度类型、整数类型等。

 

(13)     如何查看函数的代码?

MATLAB文件编辑器(Editor)菜单栏中可以使用file->Open直接打开相关M文件查看源码,或者也可以只用edit函数打开,比如

edit mean;

会直接打开求均值函数mean查看源码:

function y = mean(x,dim)

%MEAN   Average or mean value.

%   For vectors, MEAN(X) is the mean value of the elements in X. For

%   matrices, MEAN(X) is a row vector containing the mean value of

%   each column.  For N-D arrays, MEAN(X) is the mean value of the

%   elements along the first non-singleton dimension of X.

%

%   MEAN(X,DIM) takes the mean along the dimension DIM of X.

%

%   Example: If X = [1 2 3; 3 3 6; 4 6 8; 4 7 7];

%

%   then mean(X,1) is [3.0000 4.5000 6.0000] and

%   mean(X,2) is [2.0000 4.0000 6.0000 6.0000].'

%

%   Class support for input X:

%      float: double, single

%

%   See also MEDIAN, STD, MIN, MAX, VAR, COV, MODE.

 

%   Copyright 1984-2009 The MathWorks, Inc.

%   $Revision: 5.17.4.5 $  $Date: 2010/09/02 13:35:22 $

 

if nargin==1,

  % Determine which dimension SUM will use

  dim = find(size(x)~=1, 1 );

  if isempty(dim), dim = 1; end

 

  y = sum(x)/size(x,dim);

else

  y = sum(x,dim)/size(x,dim);

end

 

(14)     MATLAB里面可以使用科学计数法么?

可以。

1e10 = 1000000000

1.2e-4 = 0.00012

 

 

更多内容参见《量化投资:以MATLAB为工具》。

         该书预计2014年10月上市。

书籍交流论坛:MATLAB技术论坛读书频道《量化投资:以MATLAB为工具》专版,地址:http://www.matlabsky.com/forum-112-1.html

 

《量化投资:以MATLAB为工具》基础篇-N分钟学会MATLAB 文档、代码、数据下载地址

         《量化投资:以MATLAB为工具》基础篇部分(N分钟学会MATLAB)的相关文档、代码、数据已经完全免费开源共享,欢迎下载。

百度网盘下载地址:

http://pan.baidu.com/share/link?shareid=1036543686&uk=1761970726

 

作者简介

李洋(faruto),中国量化投资学会专家委员会成员,MATLAB技术论坛(www.matlabsky.com)联合创始人,北京师范大学应用数学硕士,先后就职于私募、期货公司、保险公司,从事量化投资相关工作。十年MATLAB编程经验,对机器学习、量化投资等相关领域有深入研究,已出版《MATLAB神经网络30个案例分析》和《MATLAB神经网络43个案例分析》等书籍。

邮箱:farutoliyang@foxmail.com

微博:http://weibo.com/faruto

郑志勇(Ariszheng),中国量化投资学会专家委员会成员,方正富邦基金产品总监,北京理工大学运筹学与控制论硕士,先后就职于中国银河证券、银华基金、方正富邦基金,从事金融产品研究与设计工作。十余年MATLAB编程经验,专注于产品设计、量化投资等相关领域的研究,尤其对于各种结构化产品、分级基金产品有着深入的研究,已出版《运筹学与最优化MATLAB编程》和《金融数量分析:基于MATLAB编程》等书籍。

邮箱:ariszheng@gmail.com

微博:http://weibo.com/ariszheng

转载于:https://www.cnblogs.com/carl2380/p/6224606.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/394292.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android-开源项目_我如何摆脱对开源的恐惧,并开始了自己的项目-以及如何做到。...

android-开源项目by Linea Brink Andersen通过Linea Brink Andersen 我如何摆脱对开源的恐惧,并开始了自己的项目-以及如何做到。 (How I crushed my fear of open source and started my own project — and how you can, too.) A week ago, I started an Open So…

本题要求实现函数输出n行数字金字塔。_练习5-3 数字金字塔 (15分)

本题要求实现函数输出n行数字金字塔。函数接口定义&#xff1a;void pyramid( int n );其中n是用户传入的参数&#xff0c;为[1, 9]的正整数。要求函数按照如样例所示的格式打印出n行数字金字塔。注意每个数字后面跟一个空格。裁判测试程序样例&#xff1a;#include <stdio.…

leetcode167. 两数之和 II - 输入有序数组(二分查找)

给定一个已按照升序排列 的有序数组&#xff0c;找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2&#xff0c;其中 index1 必须小于 index2。 说明: 返回的下标值&#xff08;index1 和 index2&#xff09;不是从零开始的。 你可以假设每…

thinkcmf 横向排列数据_利用python进行数据分析之数据清洗规整

1.处理缺失值数据使用dropna()时&#xff0c;注意里面参数axis、how、thresh的用法使用fillna()时&#xff0c;注意里面参数value、method、inplace、limit的用法2.数据转换去重data.drop_duplicates(keeplast)#注意keep的用法映射map&#xff08;&#xff09;针对的是一维数组…

v$asm_diskgroup中state的说明

1.使用oracle账号连接数据库&#xff0c;查看v$asm_diskgroup 2.使用grid账号连接ASM实例&#xff0c;查看v$asm_diskgroup 3.官方v$asm_diskgroup关于state的解释 https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/V-ASM_DISKGROUP.html#GUID-5CF77719-7…

AutoMapper的介绍与使用(二)

AutoMapper的匹配 1&#xff0c;智能匹配 AutoMapper能够自动识别和匹配大部分对象属性: 如果源类和目标类的属性名称相同&#xff0c;直接匹配&#xff0c;不区分大小写目标类型的CustomerName可以匹配源类型的Customer.Name目标类型的Total可以匹配源类型的GetTotal()方法…

站长快讯 WordPress跨站攻击漏洞修补

WordPress中发现一些漏洞&#xff0c;攻击者利用该漏洞可以发起跨站脚本攻击&#xff0c;绕过WordPress安全性限制&#xff0c;获取较为敏感的修订历史记录的信息&#xff0c;或者绑架站点以用于DDoS攻击。 CVE ID CVE-2015-8834 CVE-2016-5832 CVE-2016-5834 CVE-2016-5835 C…

畅通无阻的公式:乘员组从几乎破产变成了吸引500万游客的方式

How could you go from almost no traction and running out of money, to getting millions of visitors to your website?您怎么能从几乎没有牵引力和资金用尽的角度&#xff0c;如何吸引数百万的网站访问者&#xff1f; You could do like Crew accidentally did with Uns…

leetcode1302. 层数最深叶子节点的和(深度优先搜索)

给你一棵二叉树&#xff0c;请你返回层数最深的叶子节点的和。 代码 class Solution {int[] depthnew int[]{Integer.MIN_VALUE,0};//记录最深层数和对应的和public int deepestLeavesSum(TreeNode root) {if(rootnull) return 0;deep(root,0);return depth[1];}public void d…

Python笔记 【无序】 【五】

描述符 将某种特殊类型的类【只要实现了以下或其中一个】的实例指派给另一个类的属性 1.__get__(self,instance,owner)//访问属性&#xff0c;返回属性的值 2.__set__(self,instance,value)//将在属性分配【即赋值】中调用&#xff0c;不返回任何内容 3.__delete__&#xff08;…

化工图纸中LISP_化工设备厂参展模型设计制作

最近这个案子是受某化工设备企业委托做四套设备模型 用来参加展会在模型制作过程中&#xff0c;这类案例经常遇到。但是客户所提供的CAD图纸&#xff0c;往往是实物尺寸在进行缩放的过程中常会造成过薄和过于精细的情况出现眼下技术小哥就遇到这类情况让我们先看看客户提供的C…

社交大佬们的数据“大”在哪里?

文章讲的是社交大佬们的数据“大”在哪里&#xff0c;“别说忙&#xff0c;没工夫看书&#xff0c;你那刷FB/朋友圈的工夫腾出来&#xff0c;保证每周啃下一本”&#xff0c;小编身边总充斥着这样的“训话”。 额&#xff0c;奈何我每天的工作离不开从社交媒体中获取信息&#…

微信支付JsAPI

https://pay.weixin.qq.com/wiki/doc/api/download/WxpayAPI_php_v3.zip 下载获取微信支付demo压缩包打开压缩包&#xff0c;并将其中 WxpayAPI_php_v3\example下的 jsapi.php log.php WxPay.JsApiPay.php WxPay.MicroPay.php WxPay.NativePay.php 解压缩到根目录 tellingtent/…

mysql 多数据源访问_通过Spring Boot配置动态数据源访问多个数据库的实现代码

之前写过一篇博客《SpringMybatisMysql搭建分布式数据库访问框架》描述如何通过SpringMybatis配置动态数据源访问多个数据库。但是之前的方案有一些限制(原博客中也描述了)&#xff1a;只适用于数据库数量不多且固定的情况。针对数据库动态增加的情况无能为力。下面讲的方案能支…

我如何将Google I / O 2018的兴奋带给尼日利亚沃里的115个人

Google Developer Group Warri的第一个I / O扩展事件的故事 (A tale of Google Developer Group Warri’s first I/O Extended event) Google I/O is one of the largest developer festivals in the tech ecosystem. I am the lead organizer for the Google Developer Group …

菜鸟postman接口测试_postman 接口测试(转)

本文转载自testerhome&#xff1b;作者&#xff1a;xinxi1990 &#xff1b;原文链接&#xff1a;https://testerhome.com/topics/18719&#xff1b;转载以分享知识为目的&#xff0c;著作权归原作者所有&#xff0c;如有侵权&#xff0c;请联系删除。postman使用创建用例集启动…

求绝对值最小的数

题目 有一个升序排列的数组&#xff0c;数组中可能有正数&#xff0c;负数或0. 求数组中元素的绝对值最小的数. 例如 数组{-10&#xff0c; 05&#xff0c; 02 &#xff0c;7&#xff0c;15&#xff0c;50} 绝对值最小的是-2 解答 #include <bits/stdc.h> using namespac…

leetcode面试题 04.02. 最小高度树(深度优先搜索)

给定一个有序整数数组&#xff0c;元素各不相同且按升序排列&#xff0c;编写一个算法&#xff0c;创建一棵高度最小的二叉搜索树。 public TreeNode sortedArrayToBST(int[] nums) {if(nums.length0) return null;return BST(nums,0,nums.length-1);}public TreeNode BST(int[…

IT团队如何赢得尊重?

本文讲的是IT团队如何赢得尊重,在传统观念中&#xff0c;作为企业的IT人&#xff0c;似乎都有一种挥之不去的消极情绪&#xff1a;能够为企业带来直接利益的业务部门才是企业核心&#xff0c;而作为技术支撑的IT部门&#xff0c;则是作为附属而存在。 我们经常也会听到一些企业…

mysql 官方镜像_运行官方mysql 镜像

//目前最新的为mysql 8sudo docker run -itd --restart unless-stopped --nethost --name mysql -p3306:3306 -e MYSQL_ROOT_PASSWORDroot mysqlmysql 官方docker 需要重新设置密码&#xff0c;否则无法远程连接step1 : docker exec -it [容器id] /bin/bashstep2 : 登陆mysql &…