精华内容
下载资源
问答
  • Intrepid Control Systems, Inc. China目录VSpy3 中记录数据的方法2方法一.在message 界面点击Save 按钮2方法二....3方法三.Capture 类型functionBlock 脚本4方法四.我们极力推荐使用更便捷的数据记录界面VehicleSca...

    Intrepid Control Systems, Inc. China

    目录

    VSpy3 中记录数据的方法2

    方法一.在message 界面点击Save 按钮2

    方法二.Data Cache Disk Streaming 自动记录,不需要编写脚本。3

    方法三.Capture 类型functionBlock 脚本4

    方法四.我们极力推荐使用更便捷的数据记录界面VehicleScapeDAQ 7

    Intrepid Control System, Inc. China

    Tel: 400-610-1011 02151330272 Email: icschina@

    Add:Room601. YinQiao Plaza, No58,JinXin Road, ShangHai China 201206

    Intrepid Control Systems, Inc. China

    VSpy3 中记录数据的方法

    方法一.在message 界面点击Save 按钮

    注:可以通过ArbID 或Description 等过滤,例如输入7*, 或者输入 ‘Eng ‘来筛选一批

    报文。

    也可以把message view 的缓冲设置大些。

    随后用save 来保存缓冲区里的消息。

    Intrepid Control System, Inc. China

    Tel: 400-610-1011 02151330272 Email: icschina@

    Add:Room601. YinQiao Plaza, No58,JinXin Road, ShangHai China 201206

    Intrepid Control Systems, Inc. China

    方法二.Data Cache Disk Streaming 自动记

    录,不需要编写脚本。

    在指定的存储位置,会自动为每次运行过程记录所有数据。每次运行后,自动增加一个记录

    文件,记录格式为.vsb,文件名是运行的时间。

    读取和回放时,需要用file->review buffer 来读取,读取之后就可以手动点方法一中的Save

    转存为.csv (excel 格式)

    Intrepid Control System, Inc. China

    Tel: 400-610-1011 02151330272 Email: icschina@

    Add:Room601. YinQiao Plaza, No58,JinXin Road, ShangHai China 201206

    Intrepid Control Systems, Inc. China

    方法三.Capture 类型functionBlock 脚本

    Intrepid Control System, Inc. China

    Tel: 400-610-1011 02151330272 Email: icschina@

    Add:Room601. YinQiao Plaza, No58,JinXin Road, ShangHai China 201206

    Intrepid Control Systems, Inc. China

    Intrepid Control System, Inc. China

    Tel: 400-610-1011 02151330272 Email: icschina@

    Add:Room601. YinQiao Plaza, No58,JinXin Road, ShangHai China 201206

    Intrepid Control Systems, Inc. China

    在这个数据目录下,就可以得到若干个 csv 文件,每个 csv 文件中有5000 条消息。注意它

    存储的时候是每5000 条消息存一次文件,如果不足5000 就不写入文件。

    这时候,已经可以运行脚本将数据存储在电脑上了。

    也可以将上述脚本下载到FIRE/RED 的存储卡中,进行离线数据采集。

    关于standalone (脱离电脑独立运行的模式):

    写完脚本以后,打开 tools-> uitilities- > CoreMin

    展开全文
  • 场景: 在数据库里面保存一个增加的时间日期的字段(如3...这两个字段我应该在数据库里面怎么保存,以datetime类型保存还是以varchar 类型保存呢; 疑问二: 我该如何让这两这两个字段相同之后得出正确时间日期呢
  • 现在的项目需要从一些资料里面将各种类型的数据提取出来,并保存在数据库,数据量不算大,每年在20万条左右,数据的结构有几十种,无法统一,而且随着业务需要还在不断的增加。 目前的方法是为每种类型都单独设计...
  • matlab怎么为变量分配内存(怎么计算变量占用的内存)(2014-04-04 16:22:22)1、创建和修改数组——基本思想是保持内存的连续性(1)当为数组赋值时,Matlab在内存中分配连续的虚拟块,在另一个地方,将数组的类型和维数...

    matlab 怎么为变量分配内存(怎么计算变量占用的内存)

    (2014-04-04 16:22:22)

    1、创建和修改数组——基本思想是保持内存的连续性

    (1)当为数组赋值时,Matlab在内存中分配连续的虚拟块,在另一个地方,将数组的类型和维数等保存为头信息。

    (2)当向数组增加新元素时,如果原来位置的连续内存区域可以容纳新增加的数据,则扩大分配的内存,然后增加元素;如果连续块不够大,需要先重新分配能够容纳原有数据和新增数据的连续内存块,再将原有数据拷贝到新分配的内存中(在此期间,内存中会有原来数据的两份拷贝,增加了out

    of memory的风险),并添加新的元素到新的块中,然后释放原来的内存。

    (3)当删除数组元素时,先移除元素,再压缩原来分配的空间。

    2、数组的拷贝

    (1)当将一个数组赋值给另一个变量时,不会为新变量分配内存,新变量只是到原来数组的引用,直到新变量中元素值改变时,才会为其分配内存。

    (2)通过参数传递给函数的数据,当数据内容发生改变时才会分配内存,函数内部新的数据通过返回值传递给调用该函数的函数。

    3、数组头

    (1)由于数组头占据存储空间(虽然不多),数据存放在几个大数组中要由于存放在多个小数组中。

    (2)对结构体和元胞(cell)数组,Matlab不仅为他们创建头信息,还为结构体的每个字段和元胞数组的每个元素创建头信息,因此结构题和元胞数组消耗的内存与其创建方式有关。

    (3)whos函数只能查看数据占用的存储空间,不会显示头信息占用的空间。

    4、数据结构与内存

    (1)8-bit、16-bit、32-bit、64-bit的有符号整型或无符号整型分别占用1、2、4、8字节空间,单精度、双精度浮点数分别占用4、8字节空间。

    (2)复数的实部和虚部分别占用存贮空间,当修改实部或虚部时,会同时复制实部和虚部。

    (3)当数组的元素绝大部分为0时,用稀疏矩阵存贮以节省空间。

    5、内存占用计算

    (1)元胞数组占用的空间计算方法为:(header_size x number_of_cells) +

    data,对于64位系统,header_size为112,查看header_size的方法: A = {[]}, whos A。A =

    {1 2 3}, A = {[1 2 3]}, A = {{1 2

    3}}占用的字节数分别为:112×3+8×3,112×1+8×3,112×4+8×3。

    (2)64bit系统中结构体占用空间的计算方法:fields x ((112 x array elements) + 64) +

    data (32bit系统中将112改为60)。

    分享:

    喜欢

    0

    赠金笔

    加载中,请稍候......

    评论加载中,请稍候...

    发评论

    登录名: 密码: 找回密码 注册记住登录状态

    昵   称:

    评论并转载此博文

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

    展开全文
  • 据我所知,Python中的list类型是一个动态指针数组,当向其追加项时,它将增加其容量。NumPy中的数组使用一个连续的内存区域来保存数组的所有数据。是否有任何类型可以动态地将其容量增加为列表,并将该值存储为NumPy...

    据我所知,Python中的list类型是一个动态指针数组,当向其追加项时,它将增加其容量。NumPy中的数组使用一个连续的内存区域来保存数组的所有数据。

    是否有任何类型可以动态地将其容量增加为列表,并将该值存储为NumPy数组?类似于C#中的列表。如果类型与NumPy数组具有相同的接口,那就太好了。

    我可以创建一个类,将NumPy数组包装在其中,并在该数组满时调整其大小,例如:class DynamicArray(object):

    def __init__(self):

    self._data = np.zeros(100)

    self._size = 0

    def get_data(self):

    return self._data[:self._size]

    def append(self, value):

    if len(self._data) == self._size:

    self._data = np.resize(self._data, int(len(self._data)*1.25))

    self._data[self._size] = value

    self._size += 1

    但是DynamicArray不能用作NumPy数组,我认为在np.resize()之前由get_data()返回的所有视图都将保存旧数组。

    编辑:数组模块中的数组类型是动态数组。下面的程序测试list和array的增长因子:from array import array

    import time

    import numpy as np

    import pylab as pl

    def test_time(func):

    arrs = [func() for i in xrange(2000)]

    t = []

    for i in xrange(2000):

    start = time.clock()

    for a in arrs:

    a.append(i)

    t.append(time.clock()-start)

    return np.array(t)

    t_list = test_time(lambda:[])

    t_array = test_time(lambda:array("d"))

    pl.subplot(211)

    pl.plot(t_list, label="list")

    pl.plot(t_array, label="array")

    pl.legend()

    pl.subplot(212)

    pl.plot(np.where(t_list>2*np.median(t_list))[0])

    pl.plot(np.where(t_array>2*np.median(t_array))[0])

    pl.show()

    从图中可以看出:列表的增长因子大于数组。

    展开全文
  • 1程序说明 本程序是一个双向链表的典型示范程序,双向链表的结点为模板类型,在示范...(3)增加双向链表对文件的操作,可以从数据文件中读取数据输入至双向链表,并将新的操作结果保存在数据文件中。 ``` ```
  • 游戏介绍以前很火的植物大战僵尸游戏, 本想在网上找个python版本游戏学习下,...新增加植物:双重豌豆射手,三重豌豆射手。支持的僵尸类型:普通僵尸,棋子僵尸,路障僵尸,铁桶僵尸。使用json文件保存关卡信息,...

    游戏介绍

    以前很火的植物大战僵尸游戏, 本想在网上找个python版本游戏学习下,无奈没有发现比较完整的,那就自己来写一个把。图片资源是从github上下载的,因为图片资源有限,只能实现几种植物和僵尸。

    功能实现如下:

    支持的植物类型:太阳花,豌豆射手,寒冰射手,坚果,樱桃炸弹。新增加植物:双重豌豆射手,三重豌豆射手。

    支持的僵尸类型:普通僵尸,棋子僵尸,路障僵尸,铁桶僵尸。

    使用json文件保存关卡信息,设置僵尸出现的时间和位置。

    新增加除草机。

    下面是游戏的截图:
    图1

    006de281e02df67cb65e3af629261614.png

    游戏截图一


    图2

    0b7e31bf540f4a2863c40d961079e16f.png

    游戏截图二

    8d4d7e028285bfcb579717be6ebf5004.png

    游戏截图三

    图片显示切换

    从图1和图2可以看到,僵尸的行走和攻击时的图片显示会有不同,这篇文章讲下如何进行图片显示的切换。
    以上面的路障僵尸为例,一共有下面几种图片类型。

    • 带着路障行走
    • 带着路障攻击
    • 不带路障行走(即变成普通僵尸的行走)
    • 不带路障攻击(即变成普通僵尸的攻击)
    • 没有头的行走
    • 没有头的攻击
    • 死亡

    图3是路障僵尸的这7种图片类型的示例

    054df6ec8629bedd5a6e9386964287e0.png

    路障僵尸的7种图片类型的示例

    图片加载

    植物大战僵尸的图片资源比较特别,一种图片类型的每一个动作是一个单独的图片,如图4是路障僵尸带着路障攻击的动作图片,一共有11个图片,所以加载图片的代码要做对应的修改。

    b516e7d6d93aeb5a80c91f25c933e03e.png

    完整代码

    游戏实现代码的github链接: https://github.com/marblexu/PythonPlantsVsZombies

    代码实现

    这里就只讲下图片加载 和 图片显示切换的代码,整个游戏的文件目录结构和 之前的 超级玛丽 是一样的。

    图片加载

    在 sourceool.py 中 load_all_gfx 函数遍历resourcesgraphics 目录和子目录。
    代码中做了一个简单的区分:

    • 如果在resourcesgraphicssubfolder 目录中是图片,那就是单独的一个图片,比如resourcesgraphicsScreen 目录中的界面图片
    • 如果在resourcesgraphicssubfolder 目录中是子目录,那这个子目录或子子目录中的所有图片都属于一个图片类型,比如resourcesgraphicsZombiesConeheadZombieConeheadZombieAttack 目录下就是路障僵尸带着路障攻击的动作图片, 如图4所示。
    def load_all_gfx(directory, colorkey=c.WHITE, accept=('.png', '.jpg', '.bmp', '.gif')):    graphics = {}    for name1 in os.listdir(directory):        # subfolders under the folder resourcesgraphics        dir1 = os.path.join(directory, name1)        if os.path.isdir(dir1):            for name2 in os.listdir(dir1):                dir2 = os.path.join(dir1, name2)                if os.path.isdir(dir2):                # e.g. subfolders under the folder resourcesgraphicsZombies                    for name3 in os.listdir(dir2):                        dir3 = os.path.join(dir2, name3)                        # e.g. subfolders or pics under the folder resourcesgraphicsZombiesConeheadZombie                        if os.path.isdir(dir3):                            # e.g. it's the folder resourcesgraphicsZombiesConeheadZombieConeheadZombieAttack                            image_name, _ = os.path.splitext(name3)                            graphics[image_name] = load_image_frames(dir3, image_name, colorkey, accept)                        else:                            # e.g. pics under the folder resourcesgraphicsPlantsPeashooter                            image_name, _ = os.path.splitext(name2)                            graphics[image_name] = load_image_frames(dir2, image_name, colorkey, accept)                            break                else:                # e.g. pics under the folder resourcesgraphicsScreen                    name, ext = os.path.splitext(name2)                    if ext.lower() in accept:                        img = pg.image.load(dir2)                        if img.get_alpha():                            img = img.convert_alpha()                        else:                            img = img.convert()                            img.set_colorkey(colorkey)                        graphics[name] = img    return graphicsGFX = load_all_gfx(os.path.join("resources","graphics"))

    load_image_frames 函数 将目录中的所有图片按照 图片名称中的index值为key,保存在tmp 字典中。比如图片名称为"ConeheadZombieAttack_2", 它的index值就为2。
    然后将图片按index值依次加入到 frame_list 中。

    def load_image_frames(directory, image_name, colorkey, accept):    frame_list = []    tmp = {}    # image_name is "Peashooter", pic name is 'Peashooter_1', get the index 1    index_start = len(image_name) + 1     frame_num = 0;    for pic in os.listdir(directory):        name, ext = os.path.splitext(pic)        if ext.lower() in accept:            index = int(name[index_start:])            img = pg.image.load(os.path.join(directory, pic))            if img.get_alpha():                img = img.convert_alpha()            else:                img = img.convert()                img.set_colorkey(colorkey)            tmp[index]= img            frame_num += 1    for i in range(frame_num):        frame_list.append(tmp[i])    return frame_list

    图片显示切换

    在 sourcecomponentzombie.py 中, Zombie 类是所有僵尸类的父类,初始化 函数调用loadImages函数加载所有支持的图片类型,设置Sprite 精灵类显示需要的成员变量 image和rect。loadFrames函数给具体的子类来调用,获取图片。

    class Zombie(pg.sprite.Sprite):    def __init__(self, x, y, name, health, head_group=None, damage=1):        pg.sprite.Sprite.__init__(self)                self.name = name        self.frames = []        self.frame_index = 0        self.loadImages()        self.frame_num = len(self.frames)        self.image = self.frames[self.frame_index]        self.rect = self.image.get_rect()        self.rect.centerx = x        self.rect.bottom = y...    def loadFrames(self, frames, name, image_x):        frame_list = tool.GFX[name]        rect = frame_list[0].get_rect()        width, height = rect.w, rect.h        width -= image_x        for frame in frame_list:            frames.append(tool.get_image(frame, image_x, 0, width, height))

    基本的功能都在Zombie 父类中实现,如果子类有特殊需求,可以重定义同名函数。

    • update 函数:每个tick 都会调用的入口函数,用来更新僵尸的位置,切换状态和更新图片显示。
    • handleState 函数:根据僵尸当前的状态来执行不同的函数。
    • animation 函数:每隔指定的 animate_interval 时间会显示图片类型的下一个动作。
        def update(self, game_info):        self.current_time = game_info[c.CURRENT_TIME]        self.handleState()        self.animation()        def handleState(self):        if self.state == c.WALK:            self.walking()        elif self.state == c.ATTACK:            self.attacking()        elif self.state == c.DIE:            self.dying()        def animation(self):        if (self.current_time - self.animate_timer) > self.animate_interval:            self.frame_index += 1            if self.frame_index >= self.frame_num:                if self.state == c.DIE:                    self.kill()                    return                self.frame_index = 0            self.animate_timer = self.current_time                self.image = self.frames[self.frame_index]

    下面四个函数是修改僵尸的当前状态和图片显示。

    • setWalk 函数:修改为行走状态,图片显示会根据不同值设置不同的图片类型。
    • setAttack 函数:修改为攻击状态,图片显示会根据不同值设置不同的图片类型。
    • setDie 函数:修改为死亡状态。
    • changeFrames 函数:修改图片类型后,需要重新设置成员变量frame_num,frame_index, image和rect的值。
        def setWalk(self):        self.state = c.WALK        self.animate_interval = 150                if self.helmet:            self.changeFrames(self.helmet_walk_frames)        elif self.losHead:            self.changeFrames(self.losthead_walk_frames)        else:            self.changeFrames(self.walk_frames)    def setAttack(self, plant):        self.plant = plant        self.state = c.ATTACK        self.animate_interval = 100                if self.helmet:            self.changeFrames(self.helmet_attack_frames)        elif self.losHead:            self.changeFrames(self.losthead_attack_frames)        else:            self.changeFrames(self.attack_frames)        def setDie(self):        self.state = c.DIE        self.animate_interval = 200        self.changeFrames(self.die_frames)        def changeFrames(self, frames):        '''change image frames and modify rect position'''        self.frames = frames        self.frame_num = len(self.frames)        self.frame_index = 0                bottom = self.rect.bottom        centerx = self.rect.centerx        self.image = self.frames[self.frame_index]        self.rect = self.image.get_rect()        self.rect.bottom = bottom        self.rect.centerx = centerx

    路障僵尸类就比较简单,只需要实现 loadImages 函数,调用loadFrames函数加载该种僵尸支持的图片类型,这边主要的差异在于不同种类僵尸的图片类型的名称会有区别。

    class ConeHeadZombie(Zombie):    def __init__(self, x, y, head_group):        Zombie.__init__(self, x, y, c.CONEHEAD_ZOMBIE, c.CONEHEAD_HEALTH, head_group)        self.helmet = True    def loadImages(self):        self.helmet_walk_frames = []        self.helmet_attack_frames = []        self.walk_frames = []        self.attack_frames = []        self.losthead_walk_frames = []        self.losthead_attack_frames = []        self.die_frames = []                helmet_walk_name = self.name        helmet_attack_name = self.name + 'Attack'        walk_name = c.NORMAL_ZOMBIE        attack_name = c.NORMAL_ZOMBIE + 'Attack'        losthead_walk_name = c.NORMAL_ZOMBIE + 'LostHead'        losthead_attack_name = c.NORMAL_ZOMBIE + 'LostHeadAttack'        die_name = c.NORMAL_ZOMBIE + 'Die'        frame_list = [self.helmet_walk_frames, self.helmet_attack_frames,                      self.walk_frames, self.attack_frames, self.losthead_walk_frames,                      self.losthead_attack_frames, self.die_frames]        name_list = [helmet_walk_name, helmet_attack_name,                     walk_name, attack_name, losthead_walk_name,                     losthead_attack_name, die_name]                for i, name in enumerate(name_list):            self.loadFrames(frame_list[i], name, tool.ZOMBIE_RECT[name]['x'])        self.frames = self.helmet_walk_frames

    编译环境

    python3.7 + pygame1.9

    原文链接:https://blog.csdn.net/marble_xu/article/details/100129768?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.channel_param

    展开全文
  • //将训练好的SVM模型保存为xml文件 } else //若TRAIN为false,从XML文件读取训练好的分类器 { cout; //svm.load("SVM_HOG_2400PosINRIA_12000Neg_HardExample(误报少了漏检多了).xml");//从XML文件...
  • 图片反色、增加边缘空白可指定在 Dark 模式时反色,还能增加边缘空白,让图片的呈现更和谐、阅读体验更佳 统一多级列表自动编号将多级有序、无序列表的编号进行了统一,以更聚焦内容的结构化 任务列表支持自动...
  • (如果在下接菜单中没有想要帐单类型,可以直接在下拉菜单中录入,保存帐单后会直接保存刚新录入的类型,这样方便用户新增加类型,而不用再到类型维护中去维护再到记帐页面新增)。  这个ComboBox不是用EXT默认的...
  • 命名空间System.Collections.Generic中...Dictionary字典通常用于保存键/值对的数据,而List列表通中用于保存可通过索引访问的对象的强类型列表。下面来总结一下,用代码来演示怎么初始化,增加,修改,删除和遍历元素。
  • 命名空间System.Collections.Generic中有两个非常...Dictionary字典通常用于保存键/值对的数据,而List列表通中用于保存可通过索引访问的对象的强类型列表。下面来总结一下,用代码来演示怎么初始化,增加,修改,...
  • 开始以为是被 Apache 限制了文件类型,在配置文件里怎么找也找不到。今天 KD 提醒,是 IIS 报错!  啊!?那个……是……要给网站属性增加文件类型的什么设置!在服务器上绕了半天就是没看见在哪改。什么眼神!...
  • mvc 学习笔记

    2012-11-29 16:14:00
    在.net mvc中增加了两个数据类型,ViewData和TempData 虽然ViewData和TempData都可以传递弱类型数据,但是两者的使用是有区别的: ViewData的生命周期和View相同,只对当前View有效. TempData保存在Session中, ...
  • 命名空间System.Collections....Dictionary字典通常用于保存键/值对的数据,而List列表通中用于保存可通过索引访问的对象的强类型列表。下面来总结一下,用代码来演示怎么初始化,增加,修改,删除和遍历元素。 Dic...
  • android sqlite3关于时间的操作

    千次阅读 2014-12-09 14:20:38
    sql 中有时间的类型,date,time,datetime,方便关于记录的维护,下面一个demo演示怎么在每条记录中默认增加时间 1.先是databasehelper类,这里建表保存一本书,包括书名,作者。 package com.chaoyue.sqldemo; ...
  • 在MQSQL数据库中,我有一个表里存放了'2009-12-23'这种格式的日期数据,我是以varchar类型进行保存的,而且是一天保存一次,所以日期都是一天地增加,我现在要每隔两天取出一次数据,也就是取出数据为'2009-12-23','...
  • MongoDb的安装与使用

    2016-06-02 21:53:54
    MongoDb的安装与使用一、mongodb介绍mongodb是一款Nosql即非关系型的数据库,其灵活的数据存储方式手...下面介绍一下何为bson,bson其实是json的一个扩展,bson增加了json不支持的int、double、float等数据类型。废话不
  • type: 0, // 类型,取值0或者1,0排行榜,1快照 rankName: this.rankconfig.rankinglistName,//排行榜名称 snapshotName: "", //快照名称 rank: 0, //范围 period: 0, //周期,取值0或1,0当前周期,1上一周期 ...
  • sqllite数据库中对时间的操作

    千次阅读 2015-01-09 09:44:35
    sql 中有时间的类型,date,time,datetime,方便关于记录的维护,下面一个demo演示怎么在每条记录中默认增加时间 源码下载地址 http://www.codes51.com/code/detail_1460.html 1.先是databasehelper类,这里...
  • 在前面的两篇文章中讲了,怎么用账号和密码进行注册、登录,以及扩展...要实现用户头像功能可以有多种实现方式,在应用中用户头像就是一张图片,所以可以用已经掌握的String类型来实现,就像保存用户昵称一样,新增一列
  • 最近使用JPA进行保存对象到数据库中怎么也添加不进去,始终报错 主要原因就是你增加的数据字段长度超过数据库中字段所定义长度,去查看一下自己数据库中的字段的长度,一般是误写出来的,查看一下自己数据库中...
  • 14、关联后的效果如下图,没有关联的“问题类型”和“问题操作”怎么也被关联了呢? 12 15、看下“问题类型界面方案”的设置吧,因为未指定的采用了默认值: 12 16、我们去看看效果吧(这里果然只有我们指定的2个...
  • 皇家娱乐城

    2018-03-13 14:17:04
    怎么修改手机端android和ios版本的下载地址打开游戏管理后台,【网站系统】->【站点配置】->【安卓大厅配置】,修改字段1并保存。将apk放到服务器目录下,再修改IIS的MIME类型,添加 【.apk ...
  • 就在刚才在做一个自定义控件(具体说来就是这个控件的需要绑定一个本地的文件,而且还要显示一个缩略图、这个缩略图是根据文件的格式(即后缀名)来动态设定的,文件格式是用 枚举类型保存),由于其中的一些代码...

空空如也

空空如也

1 2 3 4 5
收藏数 99
精华内容 39
关键字:

怎么增加保存类型