你做了很多不同的事情。在

首先,在MATLAB中使用rand,它返回一个介于0和1之间的随机浮点。在python中,使用的是randint,它返回一个随机整数。您正在执行randint(0, 1),这意味着“从0到1的随机整数,不包括0”。所以它永远是1。您需要random.random(),它返回一个介于0和1之间的随机浮点数。在

接下来,您将在MATLAB中计算down和up,但是在Python中,您在Python中计算down或up。对于特定的概率情况,这些结果是相同的,但它们在语法上是不同的。在本例中,您可以使用与matlabforpython几乎相同的语法。在

最后,您为MATLAB计算的样本比Python多得多(大约是10倍)。在

这里是您的MATLAB代码到Python的直接端口。对我来说,结果与您的MATLAB示例几乎相同(当然,有不同的随机数):import random

import matplotlib.pyplot as plt

prob = [0.05, 0.95] # Probability to move up or down

start = 2 #Start at 2

positions = [start]

for _ in range(1, 1000):

rr = random.random()

down = rr < prob[0] and positions[-1] > 1

up = rr > prob[1] and positions[-1] < 4

positions.append(positions[-1] - down + up)

plt.plot(positions)

plt.show()

如果速度是一个问题,您可以通过使用np.random.random(1000)预先生成随机数,并以矢量化的方式预先进行概率比较来加快速度。在

所以像这样:

^{pr2}$

编辑:为了进一步解释第二个例子,基本上我所做的是预先计算每一步的概率是低于第一个阈值还是高于第二个阈值。这比计算随机样本并在循环的每个步骤进行比较要快得多。然后我使用zip将这两个随机序列组合成一个序列,其中每个元素都是两个序列中对应的元素对。假设是Python3,如果使用的是Python2,则应该使用itertools.izip,而不是{}。在

所以大致相当于:import random

import numpy as np

import matplotlib.pyplot as plt

prob = [0.05, 0.95] # Probability to move up or down

start = 2 #Start at 2

positions = [start]

rr = np.random.random(1000)

downp = rr < prob[0]

upp = rr > prob[1]

for i in range(len(rr)):

idownp = downp[i]

iupp = upp[i]

down = idownp and positions[-1] > 1

up = iupp and positions[-1] < 4

positions.append(positions[-1] - down + up)

plt.plot(positions)

plt.show()

在python中,通常倾向于迭代值,而不是索引。几乎从来没有过需要迭代索引的情况。如果你发现自己在做一些类似for i in range(len(foo)):或类似的事情,你几乎肯定是在做错事。您应该直接迭代foo,或者如果您需要其他内容的索引,您可以使用类似于for i, ifoo in enumerate(foo):的内容,这样可以获得foo的元素及其索引。在

由于MATLAB语言的各种限制,在MATLAB中迭代索引是很常见的。从技术上讲,可以做一些类似于我在MATLAB中的Python示例中所做的事情,但是在MATLAB中,它需要大量的样板来保证安全,而且在大多数情况下会非常缓慢。然而,在Python中,它是最快和最干净的方法。在

随机游走matlab,从Matlab到Python的一维随机游走相关推荐

  1. 用python随机生成5000个网址_使用Python脚本生成随机IP的简单方法

    需求 在某应用中,需要根据一定的规则生成随机的IP地址,规则类似于192.168.11.0/24这样的CIDR形式给出. 实现 经过艰苦卓绝的调试,下面的代码是可以用的: RANDOM_IP_POOL ...

  2. matlab 指定区域随机游走_了解随机游走模型和移动平均过程(Python)

    在本文中,我将介绍两个能够对时间序列进行建模的模型:随机游走和移动平均过程. 随机游走模型 随机游走模型由以下公式表示: 换句话说,当前时刻t的位置是前一时刻(t-1)的位置与噪声(用z表示)之和.这 ...

  3. python三维随机游走轨迹模拟_用Python模拟随机游走(Random walks)

    什么是随机游走? 随机游走(random walk)也称随机漫步,随机行走等,是以随机的体例采纳连续步调的过程.然后,可以将其他条件应用于此描述,以为您的特定用例建立一个随机遍历.粒子的布朗运动,股票 ...

  4. 随机森林用matlab实现,matlab实现随机森林

    MATLAB中的分类器_金融/投资_经管营销_专业资料.MATLAB 中的分类器目前了解到的 MATLAB 中分类器有:K 近邻分类器,随机森林分类器,朴素贝叶斯,集成学习 方法,鉴别...... 机 ...

  5. 【改进】基于Matlab的穿越火线-枪战王者(CF手游)王者飞行棋礼包收支分析

    [改进]基于Matlab的穿越火线-枪战王者(CF手游)王者飞行棋礼包收支分析 前言 模型升级的部分 仿真前提 仿真结果分析 钻石消耗分析 紫色路线 其他三色路线 关于红绿蓝结果的相似性分析 小结 关 ...

  6. 全面对比 MATLAB、Julia、Python,谁在科学计算中更胜一筹?

    数百种编程语言,各有优劣,各自也都有自己最为适用的场景.那么就科学计算领域而言,主流的 MATLAB.Julia.Python 会有哪些最为独特的优势呢?又存在哪些让开发者无力的缺陷?在本文中,我们将 ...

  7. UA MATH563 概率论的数学基础 鞅论初步10 Doob可选停止定理与一维随机游走的exiting time

    UA MATH563 概率论的数学基础 鞅论初步10 Doob可选停止定理与一维随机游走的exiting time 这一讲介绍可选停时(optional stopping),我们先回顾一下停时的定义: ...

  8. matlab代码重改python代码,对应函数

    (2021)matlab代码重改python代码,对应函数--全!_Troublemaker丶的博客-CSDN博客

  9. matlabpython建模_一直在用Matlab建模,现在Python很火,用学么?

    原标题:一直在用Matlab建模,现在Python很火,用学么? 有朋友问,自己是非IT技术岗,仅仅是做一些建模工作,现在在工作中一直使用Matlab,对它比较熟悉,各种函数都掌握,而前些年一直在用C ...

最新文章

  1. “雾霾”天里坐看云起时-【软件和信息服务】2014.01
  2. c语言作业集答案,C语言习题集及答案
  3. B - 一只小蜜蜂...
  4. HDU 3555 Bomb (数位DP)
  5. linux网络配置出现E325,Linux CentOS E325错误,如何解决?VI如何使用?
  6. MongoDB工具MagicMongoDBTool使用介绍(一) -- 简单MongoDB入门
  7. FPM一:简单的road map(GAF)
  8. java age_这些Java9 超牛的新特性,你竟然还没用过?
  9. 怎样用计算机制作思维导图,如何使用电脑制作成思维导图,这个方法简单又实在...
  10. 海康网络摄像头实时预览OCX控件
  11. umijs有什么好处_umijs核心代码解读
  12. 《老路用得上的商学课》61-65学习笔记
  13. 密码学之前后向安全性
  14. 2021SC@SDUSC 使用CUDA/GPU技术加速密码运算 总结
  15. 什么是实名域名?域名必须进行实名认证吗?
  16. 新生儿婴幼儿宝宝护理知识学习
  17. 飞利浦Georg Jensen联名系列真无线耳机JT60重磅上市
  18. Word文档快速翻译的方法,一分钟学会
  19. Eclipse中使用search功能,搜索内容无法多窗口打开
  20. ubuntu windows双系统时间不一致

热门文章

  1. C语言的sleep、usleep、nanosleep等休眠函数的了解与用法
  2. linux挂载硬盘无权限(permission denied)
  3. matlab中psnr多了50,matlab中中图像PSNR和SSIM的计算
  4. 微信小程序开发教程:项目二微信小程序开发基础 课后习题
  5. 解决@Valid校验List失败问题
  6. 程序员最爱-权利的游戏第八集第一集
  7. javaweb 图书管理系统完整代码_Thymeleaf+SpringBoot+Mybatis实现的家庭财务管理系统
  8. 大数据学习--kafka+flume++sqoop+hadoop+zookeeper+spark+flink
  9. 郑州长城计算机学校新蔡分校怎么样,郑州市第四中学分校
  10. Day454.MySQL的下载、安装、配置 -mysql