近期一些使用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