MATLAB金融工具箱(一)--快速入门

2023-11-08

一、快速入门

1.     什么是金融工具箱?

MATLAB和金融工具箱为金融分析和金融工程提供了一个完整的计算环境。并且金融工具箱提供了一切可帮助你完成金融数据的数学和统计分析的功能,并能将结果用高质量图像显示出来。你可以快速地提出、可视化并且解答复杂的问题。

在传统或电子制表过程中,你必须处理所有繁琐的细节:声明,数据类型,数据大小等等。而现在,MATLAB将为你做这一切。你只需要写出你想要解决的问题的表达式即可。这样,你就不需要再切换工具,转换文件,抑或重写应用程序。

有了MATLAB和金融工具箱,你可以:

l  计算和分析价格,产量和衍生工具的敏感性,或者其他证券或证券投资组合的敏感性。

l  完成对证券产业协会(SIA)兼容的固定收益价格,产量和敏感度分析。

l  分析或管理证券投资组合。

l  设计或评估套期保值策略。

l  识别、评价和控制风险。

l  分析和计算现金流,如回报率和折旧流。

l  分析并预测经济活动。

l  可视化并分析金融时间序列数据。

l  创建结构化金融工具,如外汇工具。

l  讲授或知道学术研究。

本章利用MATLAB来回顾一下在进行金融分析和工程应用时需要用到的基本的矩阵代数知识。包括以下几个部分:

l  金融的矩阵函数(1-4页)

1-4页回顾“关键词定义”和矩阵代数基础,比如“引用矩阵元素”(1-4页)和“矩阵转置”(1-6页)。

|  矩阵代数复习

简单回顾在金融分析和工程中使用矩阵函数。

l  “函数输入/输出参数”(1-18页)

描述可被MATLAB接受的数据格式和这些输入数据被计算后的的输出结果。

同时,这份用户指南还解释了一些MATLABT的基本概念和操作,并举出了一些金融例子以帮助您能够更好地开始金融分析之路。

2.     金融的矩阵函数

许多金融分析过程涉及数字集合;比如说一个包含不同价和量的证券投资组合。矩阵,矩阵函数和矩阵代数是分析数字集合和彼此关系的最有效的方式。电子制表关注的是单个单元格和这些单元格之间关系。然而,你可以把电子表格的一组单元格(一系列的行和列)想象成一个矩阵,MATLAB就是这样一个面向矩阵的工具,它能更快,更简单,更轻易地巧妙处理数字集合。

2.1关键词定义

矩阵。矩阵就是一个用于数学运算的数字或代数数量的矩形阵列;元素的矩形格式用行和列来描述。通常我们说一个“m×n”的矩阵,表示矩阵的行有m个数,列有n个数。这个描述总是用“行”和“列”。举个例子,下面是一个用MATLAB记号法输入的2×3矩阵,每一行的三个数分别代表一只债券的面值,票面利率和支付频率(每年支付的次数)。

Bonds = [1000 0.06 2

                   5000.055 4]

向量。向量就是一个只有一行或者一列的矩阵。通常写作“1×n”或者“m×1”矩阵。这个描述也总是用“行”和“列”。下面是一个MATLAB记号法输入的1×4的现金流向量:

标量。标量就是1×1的矩阵,如一个数。

2.2引用矩阵元素

我们用(row,col)来引用特定的矩阵元素,比如:

Bonds (1,2)

ans =

                   0.06

Cash(3)

ans =

                   5280.00

你也可以用小的矩阵或向量作为元素来扩展矩阵,比如:

AddBond = [1000 0.065 2];

Bonds = [Bonds;AddBond]

在原来的矩阵上加入了新的行,结果为

Bonds =

1000 0.06 2

500 0.055 4

1000 0.065 2

同样地,

Prices = [987.50

475.00

995.00]

Bonds =[Prices, Bonds]

在原来的矩阵加入了新的列,结果如下

Bonds =

987.50 1000 0.06 2

475.00 500 0.055 4

995.00 1000 0.065 2

最后,colon(:)在产生和引用矩阵元素时非常重要。比如,如果你要引用第二只债券的面值,票面利率和支付频率,那么你可以试试:

BondItems = Bonds(2, 2:4)

BondItems =

500.00 0.055 4

2.3矩阵转置

有时候,在进行某些操作的时矩阵的配置可能不是我们想要的。在MATLAB中,撇号(‘)可以转换矩阵:行变成列,列变成行。比如:

Cash = [1500 4470 5280 -1299]’

结果为:

Cash =

1500

4470

5280

-1299

3.     矩阵代数复习

矩阵代数和矩阵操作室用MATLAB进行金融分析和工程的基础。本章主要讨论以下几个主题:

l  矩阵加减运算

l  矩阵相乘

l  矩阵相除

l  解联立线性方程

l  元素间的操作

以上几个部分的解释应该可以恢复你的基本功。

威廉·夏普的《宏观投资分析》也给出了一些非常棒的MATLAB矩阵代数操作解释。可以从以下网址获得:

http://www.stanford.edu/~wfsharpe/mia/mia.htm

注意 当你设定一个问题,它有助于“通过对话”每个输入输出矩阵有关的单位和维度。在矩阵相乘(1-8页)下面的例子中,一个输入矩阵包含了3只股票5天的收盘价,另一个输入矩阵包含了3只股票在两个投资组合中所占的份额,因此,输出矩阵包含了两个投资组合5天的收盘价值。它也有助于使用描述性术语来命名变量。

3.1矩阵加减运算

矩阵的加减运算是元素与元素之间的运算。两个输入矩阵一定要有相同的维度。结果就是一个与原来的两个矩阵维度相同的矩阵,其中的元素是原来两个矩阵对应位置的元素之和。举个例子,考虑组合几个由相同股票组成的投资组合,但是各个股票的数量不相同(“投资组合P和Q中(列)股票A,B,C(行)的份额加上投资组合R和S中(列)股票A,B,C(行)的份额”)

Portfolios_PQ = [100 200

500 400

300 150];

Portfolios_RS = [175 125

200 200

100 500];

NewPortfolios = Portfolios_PQ + Portfolios_RS

NewPortfolios =

275.00 325.00

700.00 600.00

400.00 650.00

加上或减去一个标量和一个矩阵都是元素与元素之间的操作:

SmallerPortf = NewPortfolios-10

SmallerPortf =

265.00 315.00

690.00 590.00

390.00 640.00

3.2矩阵相乘

矩阵乘法并不是元素与元素间的操作。它遵循线性代数的运算规则。在矩阵乘法中,记住关键的规则:内部维度必须一致。即,若第一个矩阵是m×3,那么第二个矩阵必须是3×n。结果就是一个m×n的矩阵。这同样有助于“通过谈话”每一个矩阵的单位,正如我们之前在“金融的矩阵函数”(第一章2.3)中提及的一样。

矩阵乘法也是不可交换的,也就是说顺序不是独立的。这意味着A*B不等于B*A。维度规则也阐明了这一点。如果A矩阵式1×3,B矩阵式3×1,A*B就产生了一个标量(1×1),但是B×A产生的是一个3×3的矩阵。

3.2.1       向量相乘

向量乘法也遵循相同的规则并且能够帮助我们理解这个规则。比如,一个股票投资组合有3只不同的股票,他们的今日收盘价为:

ClosePrices =[42.5 15 78.875]

这个投资组合的股票份额为:

NumShares = [100

500

300]

为了计算这个股票的价值,简单地把这两个向量相乘即可:

PortfValue =ClosePrices * NumShares

产生的结果为:

PortfValue =

35412.50

这两个向量的维度分别是1×3和3×1,所以结果的维度为1×1,是一个标量。把这些向量相乘就意味着把每一个收盘价和它对应的份额数相乘,最后求和。

为了进一步说明顺序的依赖性,我们变换一下两个向量的顺序:

Values = NumShares * ClosePrices

Values =

4250.00 1500.007887.50

21250.007500.00 39437.50

12750.004500.00 23662.50

这个结果给我们展示的是份额为100,500和300的三只股票分别的收盘价值,并不是投资组合的价值,在这个例子里是无意义的。

3.2.2  计算向量的点积

在矩阵代数中,如果向量有相同的长度:



那么点积为:

这是两个向量的标量集。这是一个交换律的例外。在MATLAB中,用sum(X.*Y)或sum(Y.*X)来计算点积。只要确保两个向量具有相同的维度。我们用先前的两个向量来说明:

Value = sum(NumShares .* ClosePrices')

Value =

35412.50

Value = sum(ClosePrices .* NumShares')

Value =

35412.50

正如预期的那样,这个结果和之前我们计算的PortValue吻合。

3.2.3  向量与矩阵相乘

向量与矩阵相乘也遵循矩阵相乘法则和过程。举个例子,一个投资组合矩阵包含了一个星期的收盘价。第二个矩阵(向量)包含了这个投资组合中股票的数量。

WeekClosePr = [42.5 15 78.875

42.125 15.578.75

42.125 15.12579

42.625 15.2578.875

43 15.2578.625];

PortQuan = [100

500

300];

我们只需要简单地把他们俩相乘,就可以得到每天的投资组合价值:

WeekPortValue = WeekClosePr * PortQuan

WeekPortValue =

35412.50

35587.50

35475.00

35550.00

35512.50

价格矩阵的维度是5×3,数量矩阵(向量)的维度是3×1,所以结果时5×1。

3.2.4  两个矩阵相乘

矩阵乘法也遵循矩阵代数的基本法则。在矩阵代数记法中,如果A矩阵是m×n的,B矩阵是n×p的。


那么C=A*B就是一个m×p的矩阵,并且C矩阵的第i行第j列的元素就等于


为了说明这个问题,我们假设两个具有相同三只股票的投资组合,但是股票的数量不相同:

Portfolios = [100 200

500 400

300 150];

5×3的周内收盘价矩阵乘以3×2的投资组合矩阵产生一个5×2的每日收盘值矩阵。

PortfolioValues = WeekClosePr * Portfolios

PortfolioValues =

35412.5026331.25

35587.5026437.50

35475.0026325.00

35550.0026456.25

35512.5026493.75

周一的价值是由第一个投资组合每周一的收盘价乘以相应的份额并对求和得来的,对于第二个投资组合我们可以通过相同的方式得到。第一个投资组合周二的价值是用每周二的收盘价乘以相应的份额并求和得到的,对于第二投资组合我们用相同的方法。对于剩下的几天也是一样。只用一个简单的命令,MATLAB就可以很快地完成许多计算。

3.2.5  矩阵与向量相乘

矩阵乘以向量是维度和交换法则的一个特例。它是元素之间的操作。

Portfolios = [100 200

500 400

300 150];

DoublePort = Portfolios * 2

DoublePort =

200.00 400.00

1000.00 800.00

600.00 300.00

3.3矩阵相除

矩阵除法对于解方程特别是解联立线性方程(见解联立线性方程第一章3.4)非常地有用.举个例子,若A*X=B,你想解X.

在传统的代数里,你可能要简单地在方程的两边除以A,然后X=A/B.但是,由于矩阵代数是不符合交换律的(A*X≠X*A),所以需要不同的解法.在规范的矩阵代数中,这个结果还包含矩阵的逆.MATLAB将这个过程简化为两个除法符号,左斜线和右斜线(\和/).一般说来

X=A\B 是A*X=B的解

X=B/A 是X*A=B的解

通常,矩阵A必须是一个非奇异的方阵。它必须是可逆的,而且,必须要有相同的行数和列数。(一般地,如果一个矩阵乘以它的逆矩阵等于单位矩阵,那么这个矩阵就是可逆的。这个理论及其证明可以在Hill的《初级线性代数》附录A中找到)

如果矩阵是奇异矩阵,MATLAB会给出警告信息。




这是我在CSDN发的第一篇博客,希望从此以后能有自己的技术专栏,加油加油!
完全出于兴趣,想提高自己的阅读能力并扩充专业词汇量,若翻译中有不当之处,还望各位海涵指出,我会及时更正。
另,翻译完后我会将文档整个发到CSDN中,供大家交流学习,毕竟博客看起来还是不太方便滴~~~
这是我在CSDN发的第一篇博客,希望从此以后能有自己的技术专栏,加油加油!
完全出于兴趣,想提高自己的阅读能力并扩充专业词汇量,若翻译中有不当之处,还望各位海涵指出,我会及时更正。
另,翻译完后我会将文档整个发到CSDN中,供大家交流学习,毕竟博客看起来还是不太方便滴~~~

3.4解联立线性方程

矩阵除法在解联立线性方程组时非常有用。考虑这样一个问题:给定两个抵押工具投资组合,每一个投资组合都有依赖于最优惠利率的固定量,你怎样平衡投资组合以获得固定的年现金流?大难应包括解线性方程。

线性方程是一个形如以下形式的方程:


其中是限制(不同时为0),x和y是变量。(它是一个线性方程是因为它描述了一条在XY平面上的直线。例如2x+y=8描述了一条直线,所以当x=2的时候y=4)

一个线性方程系统就是一组你想同时解出线性方程组合,也就是联立.在解联立线性方程时的一个最基本的原则就是,需要多少个确定解就需要多少个线性方程.如果想要同时求出x和y的值,就需要两个线性方程。举个例子,我们解下面这个线性方程系统:


正如我们所说,解两个未知数必须要有两个方程。如果用矩阵来表示这个线性系统,则将之改写为三个矩阵:A矩阵代表左边的常数项,X矩阵代表变量,B矩阵代表右边的常数。


其中A*X=B

要解出这个线性系统就意味着要解矩阵X,用MATLAB来计算:

A = [2 1

1 -3];

B = [13

-18];

X = A \ B

解出X

X = [3

7]

则在这个例子中,x=3,y=7.一般地,可以用矩阵代数解任何一个形如以下的线性系统:


用矩阵表示为:


并解出A*X=B中的X。

为了说明这个问题,考虑这样一个场景。有两个抵押工具的投资组合M1和M2。在今天的最优惠利率下他们当前每年支付的现金分别为每单位100美元和70美元.如果最优惠利率降低一个百分点,他们每年支付的现金就会变为每单位80美元和40美元。一个投资者持有10个单位的M1和20个单位的M2。对于每一个最有利率,这个投资者的收入等于现金支付乘以单位数,即R=C*U。可知:

 

M1

M2

Prime flat:

$100 * 10 units

+ $70 * 20 units = $2400 receipts

Prime down:

$80 * 10 units

+ $40 * 20 units = $1600 receipts

在MATLAB中表示为

Cash = [100 70

80 40];

Units =[10

20];

Receipts = Cash * Units

Receipts =

2400.00

1600.00

现在投资者要问的问题是:给定这两个投资组合和他们的特性,当最有利率保持不变的时候,我想收入7000美元,如果最优利率下降一个百分点时我想收入5000美元那我应该持有多少个单位?解出下面的线性方程组就可以得到答案。

 

M1

M2

Prime flat:

$100 * x units

+ $70 * y units = $7000 receipts

Prime down:

$80 * x units

+ $40 * y units = $5000 receipts

换句话说,就是解出R(Recuipts)=C(Cash)*U(Units)里的U(Units)。用MATLAB进行左除:

Cash = [100 70

80 40];

Receipts = [7000

5000];

Units = Cash \ Receipts

Units =

43.75

37.50

因此,投资者应持有43.75个单位的M1和37.5个单位的M2才能获得他想要的年收入。

3.5元素间运算

最后,元素之间的算术运算称为数组操作。在MATLAB中,运算之前加一个句号表示数组运算。加法和减法,矩阵乘法和矩阵除以一个标量已经是数据运算所以并不需要再加一个句号。当我们需要对两个矩阵做数组运算时,两个矩阵的维度必须一致。举个例子,给定股票分红和收盘价的向量。

Dividends = [1.90 0.40 1.56 4.50];

Prices = [25.625 17.75 26.125 60.50];

Yields = Dividends ./ Prices

Yields =

0.0741 0.0225 0.0597 0.0744


4.     函数输入/输出参数

MATLAB被设计成一个大规模数组(向量或矩阵)处理器。除了线性代数应用程序,一般的基于数组的处理设备拥有重复执行数据集操作的能力。如果一段MATLAB代码写成同时对保存在数组里的数据集进行操作,那么我们就说这段代码是被向量化了。

向量化的代码不仅干净简洁,在MATLAB底层的引擎里也会被更高效地处理。

4.1输入参数

4.1.1       矩阵输入

由于MTLAB可以轻易地处理向量和矩阵,在金融工具箱中的大多数函数都支持向量或矩阵的输入,而不是单独的值(标量)。举个例子,irr函数计算现金流的内部收益率。它接受一个现金流向量并返回一个标量值的内部收益率。但它同时也接受一个矩阵形式的现金流,矩阵中的一列代表一个不同的现金流。在这种情况下,irr函数返回的就是内部收益率的向量,每一列对应不同的现金流。其他的工具箱函数也与之相似。

假设你有100美元的初始投资,此后每年的现金流分别是10美元,20美元,30美元,40美元和50美元。这个现金流就可以保存在一个向量里:

CashFlows =[-100 10 20 30 40 50]'

在MATLAB中显示为

CashFlows =

-100

10

20

30

40

50

irr函数可以计算这个现金流的内部收益率:

Rate = irr(CashFlows)

计算结果为

Rate =

0.1201

即12.01%。

在这里例子中,一个单独的现金流(向量形式的输入)可以产生一个标量的输出—投资的内部收益率。

把这个例子扩展到矩阵输入:

Rate = irr([CashFlows CashFlows CashFlows])

你就可以如期地看到输出是三个投资对应的内部收益率:

Rate =

0.1201 0.1201 0.1201

这个例子很好地展示了向量化编程的好处。该例中说明了如何把输入数据转化为矩阵,然后用一个工具箱函数来处理这些输入,并计算所有输入的结果。这个特性在投资组合管理中非常有用,例如,也许你把多个资产组织成一个单独的集合。把每一份资产的数据放在同一个矩阵的不同列或行,之后用金融工具箱来处理这个矩阵。MATLAB对所有的资产都会分别进行相同的运算。

4.1.2 字符串矩阵输入

在MTLAB中输入字符串需要用单引号括起来(‘字符串’)。

字符串被保存为字符数组的形式,每一个元素对应一个ASCII码。

因此下面这个时间字符串:

DateString ='9/16/2001'

实际上是一个1*9的向量。字符串组成一个矩阵的行向量或都必须具有相同的长度。要想输入多个时间字符串,需要一个列向量来保存并确保所有的字符串的长度相同。不足的情况需要补空格或补0。举个例子,创建一个与不规则现金流对应的时间向量:

DateFields =  ['01/12/2001'

'02/14/2001'

'03/03/2001'

'06/14/2001'

'12/01/2001'];

DateFields实际变成了一个5×10的字符数组。

不要试图把数字和字符串混在一个矩阵中,否则MATLAB会把所有的输入都当成字符对待,比如:

Item = [83 9099 '14-Sep-1999']

就变成了一个1×14的字符数据,而不是1×4的向量

Item =

SZc14-Sep-1999

4.2函数输出参数

有一些函数是不返回参数的,有一些只返回一个,有些则返回多个。返回多个参数的函数使用句法

[A, B, C] =function(variables...)

来返回三个参数A,B和C。因此,如果在调用这个函数时你使用了句法

X =function(variables...)

函数将只会返回A,而没有B和C。

一些返回向量的函数只接受标量作为参数。为什么这些函数不接受向量输入并返回矩阵呢?输出矩阵的每一列与输入向量之间如何对应呢?输出向量可以是长度可变的,因此对于一些不太符合常规的矩阵,由于短列缺失数据,这些规则将不再适用。

需要资产寿命作为输入,并返回对应生命周期内几个不容时间段的值得函数,不能通用地处理向量和矩阵输入,这些函数为分别是

amortize

分期偿还

depfixdb

固定余额递减法折旧

depgendb

一般余额递减法折旧

depsoyd

年数总和折旧

举个例子,假设你有一个类似汽车这样的资产集合,你想计算他们的折旧细则。函数depfixdb就可以计算余额递减的折旧值现金流。也许你想设置一个向量,每一个输入分别对应每一个资产的初始值。depfixdb也要单个资产的生命周期。如果你打算设置这样的一个资产集合为一个输入向量,并且这些汽车的生命周期不尽相同,那么折旧现金流的结果会因为周期的不同而不同,输出矩阵的列长度也不一样。这就违背了一个矩阵的每一列的行数必须相同的原则。

4.3利率参数

不管是作为输入还是输出,利率都是一个很普遍的参数。所有的金融工具箱都接受并返回利率的小数形式。因此一个利率为9.5%的实际表达为0.095.

--------------------------------第一章完结--------------------------------------------


这是我在CSDN发的第一篇博客,希望从此以后能有自己的技术专栏,加油加油!
完全出于兴趣,想提高自己的阅读能力并扩充专业词汇量,若翻译中有不当之处,还望各位海涵指出,我会及时更正。
另,翻译完后我会将文档整个发到CSDN中,供大家交流学习,毕竟博客看起来还是不太方便滴~~~
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MATLAB金融工具箱(一)--快速入门 的相关文章

  • 使用 python 在网络上部署 matlab 应用程序

    您好 我想使用 python 在网络上部署 matlab 应用程序 有没有办法做到这一点 我已按照数学工作网站上的文档将我的应用程序转换为 jar 文件 java 类 有人能指出我前进的正确方向吗 事实上 您的 Matlab 代码打包为 J
  • 使用 java 执行 Matlab 函数

    我正在编写一个应用程序 它使用 matlab 进行图像处理 然后使用 Java 接口显示结果 由于某些原因 我必须同时使用 Java 和 Matlab 如何在java中使用matlab函数 如何创建和访问界面 MATLAB控制 http m
  • 将 3d 矩阵重塑为 2d 矩阵

    我有一个 3d 矩阵 n by m by t 在 MATLAB 中表示n by m一段时间内网格中的测量值 我想要一个二维矩阵 其中空间信息消失了 只有n m随着时间的推移测量t剩下 即 n m by t 我怎样才能做到这一点 你需要命令r
  • 类方法的自定义代码完成?

    在 MATLAB 中 可以定义代码建议和完成 如标题为 的文档页面中所述 自定义代码建议和完成 https www mathworks com help matlab matlab prog customize code suggestio
  • python 正弦和余弦精度

    如何提高Python正弦和余弦精度 例如 我想使用以下代码 只需计算随机复向量 x 的 y cos acos x import numpy as np N 100000 x np zeros N 1j np zeros N for k in
  • 在 MATLAB 中创建共享库

    一位研究人员在 MATLAB 中创建了一个小型仿真 我们希望其他人也能使用它 我的计划是进行模拟 清理一些东西并将其变成一组函数 然后我打算将其编译成C库并使用SWIG https en wikipedia org wiki SWIG创建一
  • 频域和空间域的汉明滤波器

    我想通过在 MATLAB 中应用汉明滤波器来消除一维信号中的吉布斯伪影 我所拥有的是k1这是频域中的信号 我可以通过应用 DFT 来获取时域信号k1 s1 ifft ifftshift k1 该信号具有吉布斯伪影 现在 我想通过 A 乘以汉
  • 在 MATLAB 中定义其他中缀运算符

    有没有办法在 MATLAB 中定义额外的中缀运算符 具体来说 我想定义两个中缀运算符 gt and lt gt 这些符号是理想的 但如果需要 它可以是单个字符 它调用函数implies and iff以同样的方式 calls and and
  • Matlab Solve():未给出所有解决方案

    我试图找到两条曲线的交点 syms x y g x 20 exp x 30 3 5 1 sol x sol y solve x 22 3097 2 y 16 2497 2 25 y g x x y Real true 它只提供一种解决方案
  • 从 Java 运行 MATLAB 函数

    我在 MATLAB 中有一个 m 文件 我想从 Java 调用该文件 并以字符串或 Java 中的任何形式获取解决方案 这听起来很简单 但由于某种原因我无法让它发挥作用 我试过这个 matlab nosplash wait nodeskto
  • 为什么 mex 文件中的 OpenMP 仅产生 1 个线程?

    我是 OpenMP 新手 我有以下代码 使用配置了 MSVS2010 的 Matlab mex 可以正常编译 计算机有 8 个可用处理器 我也使用 matlabpool 检查过 include mex h include
  • 直方图均衡结果

    I am trying to code histogram equalization by my self but the results are different from the built in function in matlab
  • 在 matlab 代码中使用 dll 文件

    我需要使用 Matlab 中由 dll 文件定义的函数 我有一个例子 那个家伙将 dll 转换为 mexw32 文件 但我知道我是如何做到这一点的 我尝试使用加载库但它没有创建任何文件 我怎样才能做到这一点 loadlibrary http
  • 在 MATLAB 中模拟 C++ 模板

    我试图找出创建 C 模板或 Java 通用对象的替代方案的最佳方法 出于多种不同的原因 我过去曾多次想这样做 但现在我想做的是为几个相关的类创建 saveobj 和 loadobj 函数 我的想法是 我想要一组通用的例程来创建默认结构 然后
  • 如何正确从表中删除 NaN 值

    在 Matlab 中阅读 Excel 电子表格后 不幸的是 我的结果表中包含了 NaN 例如这个 Excel 表格 将产生此表 其中出现额外的 NaN 列 我尝试使用以下代码片段删除 NaN measurementCells readtab
  • 命令 A(~A) 在 matlab 中的真正作用是什么

    我一直在寻找找到矩阵非零最小值的最有效方法 并在论坛上找到了这个 设数据为矩阵A A A nan minNonZero min A 这是非常短且高效的 至少在代码行数方面 但我不明白当我们这样做时会发生什么 我找不到任何关于此的文档 因为它
  • 在matlab中,如何读取python pickle文件?

    在 python 中 我生成了一个 p 数据文件 pickle dump allData open myallData p wb 现在我想在Matlab中读取myallData p 我的Matlab安装在Windows 8下 其中没有Pyt
  • Matlab的导入函数的范围是什么?

    我正在尝试将一些用 Matlab 编写的代码转换为独立的 编译的 Matlab 应用程序 然而 在出现一些奇怪的错误之后 我意识到代码大量使用了从路径中添加和删除的操作 以避免多次使用多个具有相同名称 但结果 计算不同 的函数这一事实 环顾
  • 禁止 MATLAB 自动获取焦点[重复]

    这个问题在这里已经有答案了 我有以下问题 在我的 MATLAB 代码中 我使用如下语句 figure 1 更改某些数据的目标数字 问题是 在此 MATLAB 之后 系统将焦点集中在具有该图形的窗口上 当我在后台运行一个大脚本并尝试在计算机上
  • 如何将数据传递给 MATLAB oncleanup 函数?

    我有一个编译好的 matlab 程序 可以自动调整机器参数 在调整周期结束时 我需要恢复一些原始设置 有时会发生意外错误 有时用户会发现调整算法未正常工作 因此应终止 使用 control C 如果发生可预测的错误 我可以使用 try ca

随机推荐

  • React 常用的十个生命周期

    目录 前言 实例期 存在期 销毁期 总结 前言 学习一门语言 他的生周期我们是必须要理解 在这里就给大家讲解一下我们平常最常用到的一些生命周期 希望能给各位带来帮助 我们首先要知道 React的生命周期主要分为三部分 实例期 挂载期 存在期
  • yolov5 CUDA out of memory

    目录 yolov5 CUDA out of memory 训练笔记 训练时有时会可视化 生成anchors yolov5 CUDA out of memory yolov5训练 是1060 batch size为8 换一台电脑 batch
  • 技术选型:Sentinel vs Hystrix

    这是围绕 Sentinel 的使用场景 技术对比和实现 开发者实践等维度推出的系列文章的第三篇 第一篇回顾 Dubbo 的流量防卫兵 Sentinel如何通过限流实现服务的高可用性 传送门 第二篇回顾 RocketMQ 的保险丝 Senti
  • java jpa是什么_jpa是什么框架?jpa是什么意思?

    你了解jpa吗 很多人表示 对于jpa是一个什么框架并不是很了解 那么下面就一起通过下面的文章内容来了解一下jpa吧 jpa其实就是Java Persistence API的简称 它的中文名字是Java持久层API 是JDK 5 0注解或者
  • 【Java笔记+踩坑】MyBatisPlus基础

    导航 黑马Java笔记 踩坑汇总 JavaSE JavaWeb SSM SpringBoot 瑞吉外卖 SpringCloud SpringCloudAlibaba 黑马旅游 谷粒商城 目录 1 MyBatisPlus简介 1 1 回顾Sp
  • Vue声明周期(笔记-自己的理解)

    这是vue的生命图示 一共有八个生命周期函数 new Vue 创建Vue实例 相当于以下代码 var vm new Vue 之后就是init Event 和 LifeCycle 初始化事件和生命周期函数 beforeCreate 首先字面意
  • 一名全栈工程师的必备工具箱

    全栈工程师 也叫全端工程师 是指掌握多种技能 并能利用多种技能独立完成产品的人 全栈工程师熟悉多种开发语言 同时具备前端和后台开发能力 从需求分析 原型设计到产品开发 测试 部署 发布全流程都十分熟悉 全栈工程师由于经常研究各种技术 他不会
  • Responder与evil-winRM配合远程登录Windows

    0x01 evil winRM 0x01 1概述 在使用和介绍Responder之前 先来了解一下evil winRM evil winrm是Windows远程管理 WinRM Shell的终极版本 Windows远程管理是WS 管理协议的
  • 怎样判断两个链表相交并找到第一个相交点(微软数据结构面试题)

    来源 我是码农 转载请保留出处和链接 本文链接 http www 54manong com id 7 1 给出两个单向链表的头指针pHead1和pHead2 判断这两个链表是否相交 假设两个链表均不带环 如果两个链表相交于某一节点 那么在这
  • SpringMVC 中的视图如何使用 FreeMarker

    SpringMVC 中的视图如何使用 FreeMarker SpringMVC 是一个基于 Spring 框架的 Web 框架 它提供了一种方便的方式来处理 HTTP 请求和响应 在 SpringMVC 中 视图是用来渲染模型数据的组件 它
  • java es score_ES 使用FunctionScore实现自定义评分

    GET index type search explain query function score query 你的查询语句 field value factor field 字段 modifier log1p factor 0 1 bo
  • Python Requests模块session的使用建议

    本篇主要讲解Python Requests模块session的使用建议及整个会话中的所有cookie的方法 测试代码 服务端 下面是用flask做的一个服务端 用来设置cookie以及打印请求时的请求头 coding utf 8 from
  • 使用LinkedHashMap实现LRU算法

    LinkedHashMap是比HashMap多了一个链表的结构 与HashMap相比LinkedHashMap维护的是一个具有双重链表的HashMap LinkedHashMap支持2中排序一种是插入排序 即插入是什么顺序 读出来的就是什么
  • 什么是ConcurrentHashMap?

    文章目录 什么是ConcurrentHashMap ConcurrentHashMap 的主要特性 ConcurrentHashMap 的用法 ConcurrentHashMap 的实现原理 在什么场景使用ConcurrentHashMap
  • 47黑马QT笔记之Qt下Udp通信过程例子及实现广播与组播

    47黑马QT笔记之Qt下Udp通信过程例子及实现广播与组播 1 客户端 客户端需要注意一点 客户端没有绑定端口的话 服务端无法发送信息给客户端 Linux下可以是因为他们在同一端口 所以Qt下你也在同一端口内通信 即窗口内自己连自己的Ip和
  • 五.LLC谐振变换器

    LLC 谐振变换器启动过程分析 LLC 谐振变换器的组成结构中包含容性器件 为了尽可能减小输出电压纹波 钳位输出电压 此时希望输出滤波电容尽可能的大 因此也会在启动的时候 电容两端电压近似为 0 系统对电容进行充电 此时的电路电流很大 可以
  • ubuntu18.04 安装qt5.12.8及环境配置

    文章目录 一 下载安装包 二 安装 三 QT项目测试 环境 系统 ubuntu18 04 软件 qt5 12 8 一 下载安装包 下载地址http download qt io archive qt 5 12 5 12 8 点击需要的版本
  • idea 远程debug

    文章目录 tomcat startup bat Jboss springboot idea配置 tomcat startup bat 启动脚本添加 jpda Jboss JAVA OPTS JAVA OPTS Xrunjdwp transp
  • idea中使用git创建分支与标签

    目录 1 idea使用分支 2 在本地仓库中 添加分支 编辑 3 提交分支 4 push到远程仓库 编辑 gitignore文件通用模板 5 常用分支操作 5 1 分支创建 5 2 查看分支 5 3 合并 5 4 切换分支 5 5 删除分支
  • MATLAB金融工具箱(一)--快速入门

    一 快速入门 1 什么是金融工具箱 MATLAB和金融工具箱为金融分析和金融工程提供了一个完整的计算环境 并且金融工具箱提供了一切可帮助你完成金融数据的数学和统计分析的功能 并能将结果用高质量图像显示出来 你可以快速地提出 可视化并且解答复