近期一些使用MATLAB常用的代码
背景
最近处理行为学数据和fMRI数据,主要使用MATLAB。有一些常用的代码被自己重复使用,所以在此记录,以便于随时调取使用。
1、PVT原生mat文件→txt文件
遇到在处理一些被试的PVT数据时,有一些数据被存为原生的mat文件。因此需要使用以下代码得到txt文件。
close all; clear all; clc; filename = [01,02,03,04,05,06,07,08,09,10,11,12]; for m = 1:12 if m < 10 fid=fopen(['0',num2str(filename(m)),'.txt'],'w'); load(['0',num2str(filename(m)),'.mat']); elseif m >= 10 fid=fopen([num2str(filename(m)),'.txt'],'w'); load([num2str(filename(m)),'.mat']); end fprintf(fid,'Subject\tAge\tTrialSeq\tBeforeISI\tISI\tBeforeRT\tRT\tIntime\tTimesequence\n'); for i = 1:72 fprintf(fid,'%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t\n', [Subject Age TrialSeq(i) BeforeISI ISI_2 BeforeRT RT(i) Intime(i) now]); end fclose(fid); end
2、绘图小技巧
设置figure背景为白色:
set(0,'defaultfigurecolor','w');
设置图例无框图:
label = legend('空白组','运动组');set(label,'Box','off');
3、批量建立多个被试及RUN的文件夹
clc;clear all; cwd = pwd; for subject = 8:12 if subject<10 mkdir(['subject0',num2str(subject)]); %生成每个被试的文件夹 cd([cwd,'\subject0',num2str(subject)]); elseif subject>=10 mkdir(['subject',num2str(subject)]); %生成每个被试的文件夹 cd([cwd,'\subject',num2str(subject)]); end for run = 1:18 if run<10 mkdir(['RUN0',num2str(run)]); %生成每个Run的文件夹 elseif run>=10 mkdir(['RUN',num2str(run)]); %生成每个Run的文件夹 end end cd(cwd); end