matlab代码探究自我与他人道德判断的神经机制

需积分: 5 0 下载量 93 浏览量 更新于2024-12-27 收藏 64KB ZIP 举报
资源摘要信息:"该项目旨在探讨自我和他人道德判断的神经和行为基础,其核心内容包含以下几个方面: 首先,项目致力于复制一种特定的心理效应:即当参与者对自己所犯的道德违规行为进行评价时,相比于他人犯下的道德违规行为,他们通常会认为自己的行为更为糟糕,但这种评价仅限于这些行为是偶然发生的。这一点来源于Cushman和Young在2011年未发表的数据。 其次,项目的研究目的还包含了调查影响这种效应的因素,以便深入理解其中的作用机制。这可能涉及对个体差异、情境因素、道德判断标准以及与道德违规相关的情感反应等多个方面的研究。 第三,项目计划在判断第一人称与第三人称道德违规时评估功能性神经差异,这可能涉及到使用脑成像技术(如功能性磁共振成像fMRI)来观察大脑在不同情境下活动的差异。 项目所提供的资源包括: - 存储库代码,其中引用的数据集可用于进行进一步的研究和分析。 - 数据分析工具,如一个名为allsubjects_analyze.ipynb的Jupyter Notebook文件,这可能包含对实验数据的统计分析和可视化。 - 实验脚本,这些脚本使用Matlab/Psychtoolbox编写,用于运行实验。 - 第一人称和第三人称道德判断任务脚本FIRSTTHIRD.m,这可能是实验参与者用来进行道德判断的主要工具。 - 自我-他人定位任务脚本so_localizer.m,该任务基于Jenkins和Mitchell在2011年的研究设计,旨在帮助研究人员区分和识别参与者的自我和他人相关神经网络。 该项目的标签为“系统开源”,意味着所有相关的代码和数据集都是开放访问的,研究人员和开发人员可以在遵守相应的许可协议的前提下自由使用、修改和重新分发这些资源。 项目文件存储在名为“self_other_moral-master”的压缩包子文件中,这表明了项目的版本信息,同时暗示了可能存在的持续更新和迭代过程。"

优化并完善以下程序with open('rawscore.txt', 'r') as f: lines = f.readlines() students = []for line in lines: parts = line.strip().split() # 分割字符串 student = { 'id': parts[0], 'name': parts[1], 'scores': [int(x) for x in parts[2:]] # 将成绩转换为整数 } students.append(student) for student in students: scores = student['scores'][:3] # 取前3门课程的成绩 avg_score = sum(scores) / len(scores) # 计算平均分 student['avg_score'] = avg_score # 设置参数weight_major = 0.7 # 专业课成绩所占比例 weight_moral = 0.3 # 德育成绩所占比例 num_grades = 5 # 奖学金等级数 num_winners = [10, 20, 30, 40, 50] # 各等级获奖人数 # 根据综合成绩排序 for i in range(len(students)): for j in range(len(students) - i - 1): if students[j]['avg_score'] < students[j+1]['avg_score']: students[j], students[j+1] = students[j+1], students[j]# 输出获奖名单 for i in range(num_grades): print(f'第{i+1}等奖:') for j in range(num_winners[i]): student = students[j] score_major = student['avg_score'] * weight_major score_moral = student['scores'][3] * weight_moral score_total = score_major + score_moral if j == 0: print(f' {j+1}. {student["name"]}({student["id"]}),综合成绩:{score_total:.2f},专业课平均分:{student["avg_score"]:.2f},德育成绩:{student["scores"][3]:.2f},获得一等奖学金') elif j < num_winners[i-1]: print(f' {j+1}. {student["name"]}({student["id"]}),综合成绩:{score_total:.2f},专业课平均分:{student["avg_score"]:.2f},德育成绩:{student["scores"][3]:.2f},获得其他奖学金') else: break

2023-06-13 上传

#include <stdio.h> #include <stdlib.h> // 定义学生信息结构体 struct Student { int id; // 学号 char name[20]; // 姓名 float english; // 英语成绩 float network; // 网络成绩 float c_language; // C语言成绩 float database; // 数据库成绩 float culture_score; // 文化积分 float moral_score; // 德育积分 float comprehensive_score; // 综合积分 }; int main() { int n; // 学生人数 printf("请输入学生人数:"); scanf("%d", &n); // 动态分配内存 struct Student *students = (struct Student*)malloc(n * sizeof(struct Student)); // 输入学生信息 for (int i = 0; i < n; i++) { printf("请输入第%d个学生的信息:\n", i + 1); printf("学号:"); scanf("%d", &students[i].id); printf("姓名:"); scanf("%s", students[i].name); printf("英语成绩:"); scanf("%f", &students[i].english); printf("网络成绩:"); scanf("%f", &students[i].network); printf("C语言成绩:"); scanf("%f", &students[i].c_language); printf("数据库成绩:"); scanf("%f", &students[i].database); printf("德育积分:"); scanf("%f", &students[i].moral_score); // 计算文化积分 students[i].culture_score = (students[i].english + students[i].network + students[i].c_language + students[i].database) / 4; // 计算综合积分 students[i].comprehensive_score = students[i].culture_score * 0.7 + students[i].moral_score * 0.3; } // 冒泡排序,按照综合积分从高到低排序 for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { if (students[j].comprehensive_score < students[j + 1].comprehensive_score) { struct Student temp = students[j]; students[j] = students[j + 1]; students[j + 1] = temp; } } } // 计算获奖学生人数 int first_prize_num = n * 0.02; int second_prize_num = n * 0.08; int third_prize_num = n * 0.15; // 输出获奖学生名单 printf("一等奖学金获得者:\n"); for (int i = 0; i < first_prize_num; i++) { printf("%s\n", students[i].name); } printf("二等奖学金获得者:\n"); for (int i = first_prize_num; i < first_prize_num + second_prize_num; i++) { printf("%s\n", students[i].name); } printf("三等奖学金获得者:\n"); for (int i = first_prize_num + second_prize_num; i < first_prize_num + second_prize_num + third_prize_num; i++) { printf("%s\n", students[i].name); } // 释放内存 free(students); return 0; }对数据结构和变量进一步解释或说明,增加可读性

2023-06-03 上传