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

  

 

posted @ 2020-12-14 01:57  wangsl97  阅读(551)  评论(0编辑  收藏  举报