# pacmanAnalysis **Repository Path**: xcwangbcp/pacman ## Basic Information - **Project Name**: pacmanAnalysis - **Description**: to be filled - **Primary Language**: Matlab - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-13 - **Last Updated**: 2026-06-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 1. 1_preprocessData (1) Raw2Mat2CSV: mat->csv 将一天(一个session)的mat数据转换为csv数据 run Raw2Mat2CSV_main ①translateData:一个session的许多mat变为一个大mat文件 ②Mat2Csv: 将这个大mat文件转换为一个大csv文件 (2)csvFormatTransform: csv->csv_final->pkl 将之前的csv再处理一下转换为pkl run toPkl ①from ppRaw import transData:将csv进一步处理 ②保存为csv和pkl *(3)constant_map:获得地图和路径信息(在地图不变的情况下,跑一次就可以,不需要每只猴子都跑) run RunMapConst_fmri:获得地图结构信息 ①map_data:获取地图墙,路和tunnel的位置 ②save_mapinfo:保存各个信息 map_info.csv run create_adjacent_map ①读取map_info.csv 计算地图上具体位置的可行动方向 保存为adjacent_map.pkl run create_dij_distance_map ①读取adjacent_map.pkl 获取可能的行动路径(这个要跑7min左右)保存为dij_distance_map.pkl 2.2_generateCorretTileData run generaterCorrectedData ①CorrectFrameData:处理原始的frame pkl数据,改一下fruit相关列名,增添一列index。从pkl文件夹的数据出发,得到frame文件夹。 ②ExtractTileFromFrame:从frame data中抽帧得到tile data(25帧一个tile)从frame文件夹的数据出发,得到tile文件夹。 ③CorrectTileData:结合frame data修正tile data。从tile文件夹的数据出发,得到tile_corrected文件夹 *一开始我直接使用了framedata去跑CorrectTileData函数,也能跑通,就是没有抽帧的这一个过程 3.3_calculateQvalue (1)PreEstimation: 根据tiledata(也可以用framedata,计算出来的结果会不一样)计算得到每个tile/frame时刻 各个stg(6个或7个,7个就是多一个no_energizer)的Qvalue run PreEstimation ①Agent中是用不同方法计算策略价值的各个函数 ②Utils.FileUtils中导入的是读取map info的函数 ③可以通过is_7str变量来选择要拟合7个策略还是6个策略 (2)UtilityConvert:根据地图信息(是否该方向available)将PreEstimation计算得到的Q value文件中的部分价值为0的方向,变为-inf run UtilityConvert ①转换完的文件保存在Q_value_corrected文件夹中 4.4_FittingStrategy/Fitting run MergeFitting_nan_ga_parallize