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