《鎌仓物语》

《鎌仓物语》观影结束
日版《捉妖记》?也是设计了些可爱的小妖怪,贯穿始终。

IMG_20180915_125706.jpg

当我临时起意决定去看这部分电影时真没想到它是这样的剧情的,一听到什么什么物语,总感觉会是一种温情风,看完这部电影只能让我怀疑这种印象只能是我的刻板印象,而这种刻板印象的由来绝对与日语到汉语的翻译有关,我是抱着一种娓娓道来的期待去观影的,现在想来,看任何一部影片,永远不要带任何的期望,纯粹地借助于感官去感受,如果你通过感官感受到了内心的震动,ok,这是一部让你动心的影片,当然,这不仅仅适用于文艺片,优秀的动作片有时也会有那么一丝触心之感,或许没有余味。

《鎌仓物语》,以一个可爱的场景开头,一位作家和比他小很多岁的女孩子刚刚结婚,新婚旅行刚刚结束,来到了镰仓。女主叫亚纪子,男主叫一色正和,女主称正和为老师。镰仓,一个神奇的地方,对正和而言,这个妖怪与人类和谐相处的世界他已习以为常,而亚纪子,则像一个刚从大学校园出来的大学生,处处充满了好奇,却也有着畏惧,其实也差不多,亚纪子也就23岁而已,跟我同龄人嘛。

正和是位作家,作家就是要靠想象力生存。一次偶然的机会,亚纪子在整理那个正和让她千万不要进的储物柜时发现了几份手稿,当她拿给正和时,正和如获至宝,那时他视之为天才的作家甲泷的作品,作品未完稿,一定好奇为啥没有完稿,这些在后来都会揭晓。

平淡的生活不会就这么继续着,这不,波浪接踵而至,先是男女主二人在妖怪的夜市买东西,买到了松茸,是的,就是那个我没有吃过超级贵的松茸,日元300元一小盘,亚纪子说好便宜啊,赶紧买下来,拿回去就心满意足展现自己的厨艺,亚纪子把松茸炖了,炖的时候还特意拿着那块特殊的松茸犹豫了下。正和说,松茸哪有你这样做的,这样一炖不是把鲜味都炖没了吗?咦,话可别说太早,先喝一口再说。Kidding me?竟然这么好喝,不得不表扬一下我如此优秀的妻子。But,松茸虽好,可不要贪吃奥,亚纪子出去了一下,回来就发现正和躺在地上,嘴里是一阵烟雾缭绕,发生了什么?正和的灵魂出了窍,亚纪子就使劲往回按,此时一位神奇的百岁婆婆就出场了,在影视剧中,老婆婆一般是不轻易出场的,一旦出场,必有神力。婆婆提起一根棍子,照着正和的背部一打,正和的灵魂就回到了身体。正和醒来了,他说,好爽,我们男主就是不一般,生死时刻感觉是好爽。婆婆问亚纪子,你是不是也喝了?亚纪子点点头,此刻,她的嘴里也开始烟雾缭绕,吓得她赶紧把灵魂按了回去。但这就埋下了伏笔,这段时间,她的灵魂随时有出窍的可能,那女主是怎么办的呢?当然是来搞笑的啊,她戴上了口罩,想问这么神奇的口罩是在哪里买的?镰仓就是这么个神奇的地方,口罩也是不一般的口罩。

又一段平凡的日子就这么过去了,大事发生了。

贫穷之神降临正和家,这一段私以为纯粹搞笑,贫穷之神就是走到哪里就让哪里倾家荡产,就是惩恶扬善的角色,他没想到,他会遇到一个如此善良的亚纪子,亚纪子做饭给他吃,他说那是800多年来吃过最好吃的饭,后来,当贫穷之神要离开时,他赠与亚纪子一个碗,作为交换,善良的亚纪子也送了这位大神一个碗。谁都不会想到,正是大神送的这个神奇的碗,后来会发挥救命角色,也许这一段就是为了做这个铺垫吧。

日子啊,依旧在过。

亚纪子接到一通电话,急急忙忙跑着去找正和,不料想在路上却被妖怪陷害,之后才发现自己的身体不见了,她胆战心惊地敲了敲正和的门想告诉她这个严肃的问题,但他的老师正和可是个大作家,后天就要交搞了,此刻的他是万万不可打扰的。此刻,亚纪子的沉默都是爱。她就要这样离开心爱的老师正和了吗?
是的,毫无悬念,离开了,虽然剧情曲折了一些,还是孤身去往了黄泉之国。此时就要提到死神局,死神局是人间和黄泉之国的中介,一般人死亡之后如果有特殊情况可以向死神局提出申请,申请灵魂留在亲人身边一段时间,但亚纪子很特殊,她的身体找不到了,可爱的死神姐姐只能消耗正和的身体能量来维持亚纪子的人间存活时长。可是,爱情啊,深爱的人怎么忍心看对方因为自己而日渐憔悴。
亚纪子艰难地做了决定,她选择奔赴黄泉之国。她给正和留下了一封告别信,当正和看到信,心痛不已,飞奔而出,每一个脚步似乎都要崩溃,他追上了亚纪子,还是被亚纪子说服。正和望着那辆通往黄泉之国的复古电车,这是他第二次看到,第一次欣喜,第二次绝望。他还有第三次,第三次是期望。
正和终于找到了亚纪子的身体,他做好准备,带上老婆婆给她的甲泷在黄泉的住址,别问为啥老婆婆知道住址,老婆婆就是这么神奇,做好准备,正和要去黄泉之国带回亚纪子。

他来到了黄泉之国,可爱的死神姐姐告诉他,每个人看到的黄泉之国是不一样的,是由自己的想象决定的。小姐姐带路,找到了甲泷的家。正和敲门,出来的是他妈,很神奇,而后出来了作家甲泷,正和一直以为甲泷才是他的亲生父亲,母亲和甲泷背叛了他父亲才有了他,这是他童年时就有的印象,一直耿耿于怀,持续到现在,而且他唯一一次对亚纪子发脾气就是因为他不想提父母的事,觉得很耻辱。所幸,当真相大白,一切都是正和的错觉,他只有一个父亲,那两个角色都是他父亲,而甲泷五四朗和一色宏太郎是同一个人,甲泷是他父亲一色宏太郎的笔名,那篇稿件没有完成也是因为甲泷来黄泉之国找正和的母亲,二人在黄泉之国没有回去。

一切都水落石出,正和要去英雄救美了,父亲告诉他,虽然绑架亚纪子的天头鬼很厉害,但还是有办法的,要依靠自己的想象力战斗。正和就出发了,历经一番起起伏伏,与天头鬼激战,眼见处于下风,危急时刻,当天头鬼紧紧缠住正和胁迫亚纪子如果不跟着他口述跟他结婚的誓言就要把正和吃掉,当亚纪子即将说完最后一个字,奇迹出现了,贫穷之神的碗出现了,这个神奇的碗拯救了他们,这个碗是神的物件,而天头鬼只是妖,妖根本不是神的对手。好一个失魂落魄的天头鬼,从这一段故事才知道亚纪子跟正和已经是好几世的夫妻,而天头鬼一直在追亚纪子,追了几世还是失败了,奈何他命由天不由他。

大结局,鎌仓物语,爱情的气息。

观影时,当死神姐姐出场时感觉很像《小偷家族》里的那个姐姐扮演者,查了下,还真是,她的表演也很为电影增色不少,当然,增的是喜剧色彩。

且写至此。

20180915


附图:

Advertisements

字符串压缩

有这么一道题,要求用python实现:

Question 4 (6 marks): Deja Vu
Your company is creating the next WinZip!
WinZip is a popular program that makes your files smaller to save storage space and download times. You are a new hire on the data compression team, and you are asked to create the first processing stage, in which repeated data is identified for further checking.
Your task is to obtain from the user a text string to be compressed, and then replace each repeated character in this text string with a relative index to the previous occurrence of the character, thus creating a list that is linked (so that recent substrings beginning with a given character can be located easily).
You must output each repeated character as an open parenthesis, a negative number, and then a close parenthesis. This counts as only one position in the resulting string. You may assume that there are no parentheses in the input, or that if there are, they need not be distinguishable from any parentheses you add.

For example, given the text string ‘hello’, you will output the string ‘hel(-1)o’, indicating that after ‘hel’ there is a repeated character which can be found by going backwards one character in the string. Multiple repeats point to the most recent, for instance ‘aardvark’ gives ‘a(-1)rdv(-4)(-4)k’.
First sample session with the program:
Text to compress?
hello hel(-1)o
Second sample session with the program:
Text to compress? aardvark
a(-1)rdv(-4)(-4)k
Third sample session with the program:
Text to compress?
The cat in the hat
The cat(-4)in(-3)(-5)(-11)(-11)(-4)(-3)(-11)(-6)

如下图,可以更清晰:

image.png

实现方法:

# 20180826 By Galory
# Email:996377370a@gmail.com
# coding:utf-8

string_input = input("Text to compress?")
# 新建一个列表,保存当前字符串
str_list = []
for i in string_input:
    if i not in str_list:
        # 把当前字符串添加进str_list列表中
        str_list.append(i)
        print(i, end="")
    elif i in str_list:
        # 把列表逆序输出
        current_str = str_list[::-1]
        # 把列表转换为字符串
        str_current = "".join(current_str)
        # 字母重复出现时输出其上一次出现时的位置
        print("(-" + str(str_current.find(i) + 1) + ")", end="")
        str_list.append(i)

写这个程序get到的知识:

  • 字符串与列表的转换
列表转字符串:
命令:"".join(list)
其中,引号中是字符之间的分割符,如“,”,“;”,“\t”等等
-----------------------------------------------
列表转字符串:
命令:
str_name = "Ths is a string."
list_new = list(str_name)
  • python中字符串查找的 find和index方法
# 这里直接引自链接:http://outofmemory.cn/code-snippet/6682/python-string-find-or-index
python字符串查找有4个方法,1.find,2.index方法,3.rfind方法,4.rindex方法。

1.find()方法:查找子字符串,若找到返回从0开始的下标值,若找不到返回-1

info = 'abca'
print info.find('a')##从下标0开始,查找在字符串里第一个出现的子串,返回结果:0

info = 'abca'
print info.find('a',1)##从下标1开始,查找在字符串里第一个出现的子串:返回结果3

info = 'abca'
print info.find('333')##返回-1,查找不到返回-1
2.index()方法:

python的index方法是在字符串里查找子串第一次出现的位置,类似字符串的find方法,不过比find方法更好的是,如果查找不到子串,会抛出异常,而不是返回-1

info = 'abca'
print info.index('a')
print info.index('33')
rfind和rindex方法用法和上面一样,只是从字符串的末尾开始查找。
  • python中reverse一个字符串
>>> 'hello world'[::-1]
'dlrow olleh'

It works by doing [begin:end:step] - by leaving begin and end off and specifying a step of -1, it reverses a string.
  • python中reverse与reversed函数

foo.reverse() actually reverses the elements in the container.
reversed() doesn’t actually reverse anything, it merely returns an object that can be used to iterate over the container’s elements in reverse order. If that’s what you need, it’s often faster than actually reversing the elements.


总之有什么问题,Googlestackoverflow都会给你很大的帮助。
20180826

心存念想

情不知所起,想谈谈念想。


工作很疲惫,但再疲惫晚上都可以回到自己的床,舒展他垂丧身心;生活不如意,幸得佳人伴(如果有佳人),佳人一笑抿哀愁,佳人一抱乐开怀;朝九晚五的生活平淡无奇,于是谋划着下个假期赏他壮美山河。床是你的念想,佳人是你的念想,假期是你的念想。

学生时期其实是最幸福的,作业繁重,但是心知肚明一定会有一个期限,那个期限是考试,是回家,是放假,是见到想见的人,是获得心仪的礼物,那一天虽未到来,但明知它一定会到来。学生时期的幸福,很多是确定的,是可以预见的。在准确衡量自己实力的基础上,踏踏实实努力是可以获得十足的进步;在你付出很多心血之后是真的可以得到你想要的东西。那时心存念想是一件很幸福的事,绝大多数情况下,只要这个念想不离谱,不异想天开,终有实现的那一天。

至今仍记得初中班主任在说中考成绩出来时感叹道的“几家欢乐几家愁”,那个时候,中考是那个阶段最重要的事,多数学子拥有着同一个梦想,便是笑傲考场。考生们披晨光而出,再荷月而归,追逐着自己的小小梦想。但并非每个人都可以稳定发挥或超常发挥,塞翁失马也是常有之事,纵是如此,每个人都可以确定地努力,他们心存念想,一个对于成绩的纯粹的念想。十多年后,再看那段时光,感觉并没那么重要,就像在历史长河中每段历史都显得十分渺小,但在当时,就是再真实不过、再重要无比的生活了。

毕业之后的生活,面对的多是不确定。或许某个阶段好运和好事都围着你转,或许有时又如置身无人问津的驿站。生活如波浪 ,起起伏伏,若随波逐流,心情也是阴晴不定;若乘风破浪,心情自然收放自如。

霍金说,“活着就有希望”,希望就是念想,是内心的期望,生活若无念想,便丧失了对生活的激情,很容易陷入一种很丧的状态。很多人说自己的生活毫无波澜,或者说生活如一潭死水,很大程度上与心无念想有关。心存念想,简单点来说,它可以是和煦的阳光,可以是舒畅的清风,可以是晃动的枝丫,也可以是踏青出游,是走访山川大地,是升职加薪,它可以是一切让你对明天心存期待的事。

按我的理解,生活的仪式感其实也是对生活心存念想,仪式感不一定非要像祈祷或做礼拜那样模式化,生活的仪式感更多的像是享受当下的愉悦,不一定要多庄重,只要让自己处于一个很舒服的状态,很享受现在,于是会在心里默默播种下这种快乐,告诉自己下一次也会像现在这般幸福,内心预见到下一次也会得到这种快乐,于是生活的仪式感无形之中是为内心存了一个念想。

念想是微光,这微光足以让你迈出一小步。

20180819

生活小恬淡

坐在球场边,夕阳染红了天空,运动场上满是燃烧着的汗水和激情,一瞬之间,那个想法涌入我心头,你所看到的不是我看到的,你所听到的不是我听到的。片刻之间好像突然间洞悉了之前的好多事。

我在沙漠中为大漠孤烟直心生震撼,拍了照发给你,你在你所在之地方也许百无聊赖;我在山谷间为鸟鸣山更幽流连忘返,录了视频给你,你在你所在之地可能心绪惆怅。我把盛满爱的礼物送给你,自觉一片赤诚之心不可能打动不了你,而我不知道你想要的仅仅是一种在意和关心,是关心你说过的每一个细节。依我目前拙见,爱情之中矛盾源头无非尊重、平等与关心。

联想到现在的朋友圈,朋友圈是什么呢?是记录、是炫耀还是分享美好?那为什么很多人的朋友圈会很不招人喜欢呢?因为那多的是炫耀,是一种高高在上的优越感,而在一个人人平等的社会里,每个人的生活都值得记录,这也是快手短视频等平台火爆的原因之一。每个人在看待事物时都带有自己的阅历,所看所听很少是纯粹只看只听而不联想,于是内心便有了一种对比,幸福感不在对比中产生。那为何很多人的朋友圈看起来很舒服呢?两个关键词,真诚、尊重。

“泻水置平地,各自东西南北流;人生亦有命,安能行叹复坐愁”,而水能载舟,亦能覆舟,你是水或是舟无关紧要,重要的是你找准自己的定位。水,可行使善利万物而不争的权利;舟,必须知道水的不可或缺性并对水报之以尊重。你渴了,想喝水,拿了一个水杯请求帮助,如果你的水杯摆得太高,比水壶都高,你是不可能喝得着水,水杯请求水壶的帮助,一定是比水壶的姿态要低,当水杯请求水壶帮助时,水壶的势能自然是比水杯大的,像极了生活中的很多场合。

如果生活只有一味,我愿给她真。

20180818

优美的忧伤穿越而来

今夜月色很美,清爽的小风慢慢袭来,繁星密密麻麻,弯弯的月亮彷佛悬在云层之上,沿着安静的路漫步,月光渐渐拉长身影,一个如痴如醉的夜晚,不诉凄凉,不诉离别,夜色和着微风弥散了衷肠,我觉得这样的夜再美不过。


而如今当我翻起数年前高中语文课本上阮籍的一首古诗,只想感叹一句,这才真叫优美。

夜中不能寐,起坐弹鸣琴。
薄帷鉴明月,清风吹我襟。
孤鸿号外野,翔鸟鸣北林。
徘徊将何见,忧思独伤心。

这首诗是阮籍咏怀八十二首中的一首,深深为之动容,潸然泪下也不为过。
从文字中想象当时阮籍的场景,躺在床上好久却怎么也睡不着,索性坐起来弹琴,不想诉说自己的忧伤。月光透过帘子,若隐若现;清风吹着衣服,忽起忽落。孤鸿在野外哀号,鸟儿在北林惊鸣。此刻徘徊能看到什么呢,无非是独自伤心、黯然神伤。
我把自己想象成阮籍,此情此景,我有多忧伤,却把忧伤抒发得这么优美。

是的,总有些优美会穿越时光而来,比如这种优美的情感,比如蕴藏于文字背后的情境。


这是一个理想主义的夜晚,我在这样一个“遥遥万里辉,荡荡空中景”的夜晚写下这些,轻飘飘。
20180815

看见李健,看见智慧

看见李健,看见智慧

今年的中国好声音重新认识李健,幽默、睿智。
遂去了解他的成长史。
清华才子,理工男学霸。

看了李健2015年四大高校健谈会四场讲座,清华、成电、人大、哈工大,每场讲座爆满,每场讲座或者说分享会都是即兴演讲、即兴表达,但内容重合的很少。他不是一个专业的讲者,只是腹有诗书气自华,分享的内容颇具智慧,有些智慧是我已经领悟到的,也有正在领悟和实践的。看他走过的历程会发现,他是一个把自己保护得很好的创作者,他坚持自我,有一套自己的生活哲学,有很多很多值得学习的地方。

总结了些健哥的智慧,没有也不必要拉开赘述,每个主题背后留给自己思考。

  • 专注——专注于做一两件事或只做一件事;忘我
  • 不过分高估自己
  • 专注于某件事一定会受非议,真正的专注是心里面逐渐成长起来的自信,是可以抵抗外界干扰的强厚的抵挡
  • 专注——自我强大、与自己相处、聆听自己内心的声音
  • 专注你擅长的事——擅长
  • 不摇摆——坚持自我,或许是异类
  • 变与不变——难把握
  • 精神生活——并非每个人必须的,生存还是第一位;结合社会现状
  • 找到属于自己生活的乐趣
  • 迷惘——自我认知的开始
  • 欣赏有技术的人、欣赏手艺人——夸夸其谈的大话随处可见、宏观的观点也随处可见
  • 大学是最好的积淀时期——校园生活短暂,却是储备的最好时期,毕业以后来不及
  • 很多讲座就是心灵鸡汤,毫无意义——批评却不指名道姓,因为他很多朋友就是这样
  • 在竞争大的环境里磨练
  • 老人的经验未必有用——需要去验证,很多都是适用于自己,也许是那个时代专属的
  • 专注力的训练——强迫自己、管理手机、网络;长期坚持才有效果
  • 爱好+天赋+专注——深层次的快乐
  • 真正的智慧来源于生活
  • 每个人的能力都是有限的——纷繁的时代里适当舍弃;诱惑太多
  • 真正发展的是有技术的人
  • 每个人最重要的是拥有自己喜欢的生活
  • 寻找只属于自己的生活——拥有自己的乐趣、沉静下来、把自己的生活经营得津津乐道
  • 青春——一定是纯色的,不管是纯绿色、纯黄色还是纯什么色;纯粹;赤子之心
  • 涵养——读的作品;马尔克斯;村上春树的生活状态
  • 每种作品都有受众——不为他人改变自己初衷

20180809

SPM12–batch批量预处理数据

实现的代码如下:
code.m
% By - Galory  Email - 996377370a@gmail.com

% List of open inputs

global sub type
% My files are named as 1 2 3 4 5 6 7 8 9 10
type={'1' '2' '3' '4' '5' '6' '7' '8' '9' '10'};

for i=1:length(type)
    sub = i;


nrun = 1; % enter the number of runs here
jobfile = {'C:\Users\xuwhe\Desktop\pre_fmri\files\batch\code_job.m'};
jobs = repmat(jobfile, 1, nrun);
inputs = cell(0, nrun);
for crun = 1:nrun
end
spm('defaults','fmri');
spm_jobman('run',jobs,inputs{:});
end
code_job.m
%-----------------------------------------------------------------------
% Job saved on 31-Jul-2018 16:26:14 by cfg_util (rev $Rev: 6460 $)
% spm SPM - SPM12 (6906)
% cfg_basicio BasicIO - Unknown
%-----------------------------------------------------------------------

global type sub

inputpath=['C:\Users\xuwhe\Desktop\pre_fmri\data_batch\1dicom\' num2str(sub)];
outputpath =['C:\Users\xuwhe\Desktop\pre_fmri\data_batch\1dicom\' num2str(sub) '\output'];

%选取raw data
pathname1=[inputpath '\0002\'];
sdir1=dir([pathname1,'*.IMA']);%选取IMA
for i=1:length(sdir1)
    imgfile1{i,1}=[pathname1 sdir1(i).name];
end

%选取raw data
pathname2=[inputpath '\0003\'];
sdir2=dir([pathname2,'*.IMA']);%选取IMA
for i=1:length(sdir2)
    imgfile2{i,1}=[pathname2 sdir2(i).name];
end

%选取raw data
pathname3=[inputpath '\0004\'];
sdir3=dir([pathname3,'*.IMA']);%选取IMA
for i=1:length(sdir3)
    imgfile3{i,1}=[pathname3 sdir3(i).name];
end

%选取raw data
pathnameT1=[inputpath '\0005\'];
sdirT1=dir([pathnameT1,'*.IMA']);%选取IMA
for i=1:length(sdirT1)
    imgfileT1{i,1}=[pathnameT1 sdirT1(i).name];
end


%%
matlabbatch{1}.spm.util.import.dicom.data = imgfile1
%%
matlabbatch{1}.spm.util.import.dicom.root = 'flat';
matlabbatch{1}.spm.util.import.dicom.outdir = {[outputpath '\RUN1\']};
matlabbatch{1}.spm.util.import.dicom.protfilter = '.*';
matlabbatch{1}.spm.util.import.dicom.convopts.format = 'nii';
matlabbatch{1}.spm.util.import.dicom.convopts.icedims = 0;
%%
matlabbatch{2}.spm.util.import.dicom.data = imgfile2
%%
matlabbatch{2}.spm.util.import.dicom.root = 'flat';
matlabbatch{2}.spm.util.import.dicom.outdir = {[outputpath '\RUN2\']};
matlabbatch{2}.spm.util.import.dicom.protfilter = '.*';
matlabbatch{2}.spm.util.import.dicom.convopts.format = 'nii';
matlabbatch{2}.spm.util.import.dicom.convopts.icedims = 0;
%%
matlabbatch{3}.spm.util.import.dicom.data = imgfile3
%%
matlabbatch{3}.spm.util.import.dicom.root = 'flat';
matlabbatch{3}.spm.util.import.dicom.outdir = {[outputpath '\RUN3\']};
matlabbatch{3}.spm.util.import.dicom.protfilter = '.*';
matlabbatch{3}.spm.util.import.dicom.convopts.format = 'nii';
matlabbatch{3}.spm.util.import.dicom.convopts.icedims = 0;
%%
matlabbatch{4}.spm.util.import.dicom.data = imgfileT1
%%
matlabbatch{4}.spm.util.import.dicom.root = 'flat';
matlabbatch{4}.spm.util.import.dicom.outdir = {[outputpath '\T1\']};
matlabbatch{4}.spm.util.import.dicom.protfilter = '.*';
matlabbatch{4}.spm.util.import.dicom.convopts.format = 'nii';
matlabbatch{4}.spm.util.import.dicom.convopts.icedims = 0;
matlabbatch{5}.spm.temporal.st.scans{1}(1) = cfg_dep('DICOM Import: Converted Images', substruct('.','val', '{}',{1}, '.','val', '{}',{1}, '.','val', '{}',{1}, '.','val', '{}',{1}), substruct('.','files'));
matlabbatch{5}.spm.temporal.st.scans{2}(1) = cfg_dep('DICOM Import: Converted Images', substruct('.','val', '{}',{2}, '.','val', '{}',{1}, '.','val', '{}',{1}, '.','val', '{}',{1}), substruct('.','files'));
matlabbatch{5}.spm.temporal.st.scans{3}(1) = cfg_dep('DICOM Import: Converted Images', substruct('.','val', '{}',{3}, '.','val', '{}',{1}, '.','val', '{}',{1}, '.','val', '{}',{1}), substruct('.','files'));
matlabbatch{5}.spm.temporal.st.nslices = 33;
matlabbatch{5}.spm.temporal.st.tr = 2;
matlabbatch{5}.spm.temporal.st.ta = 1.93939393939394;
matlabbatch{5}.spm.temporal.st.so = [1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32];
matlabbatch{5}.spm.temporal.st.refslice = 33;
matlabbatch{5}.spm.temporal.st.prefix = 'a';
matlabbatch{6}.spm.spatial.realign.estwrite.data{1}(1) = cfg_dep('Slice Timing: Slice Timing Corr. Images (Sess 1)', substruct('.','val', '{}',{5}, '.','val', '{}',{1}, '.','val', '{}',{1}), substruct('()',{1}, '.','files'));
matlabbatch{6}.spm.spatial.realign.estwrite.data{2}(1) = cfg_dep('Slice Timing: Slice Timing Corr. Images (Sess 2)', substruct('.','val', '{}',{5}, '.','val', '{}',{1}, '.','val', '{}',{1}), substruct('()',{2}, '.','files'));
matlabbatch{6}.spm.spatial.realign.estwrite.data{3}(1) = cfg_dep('Slice Timing: Slice Timing Corr. Images (Sess 3)', substruct('.','val', '{}',{5}, '.','val', '{}',{1}, '.','val', '{}',{1}), substruct('()',{3}, '.','files'));
matlabbatch{6}.spm.spatial.realign.estwrite.eoptions.quality = 0.9;
matlabbatch{6}.spm.spatial.realign.estwrite.eoptions.sep = 4;
matlabbatch{6}.spm.spatial.realign.estwrite.eoptions.fwhm = 5;
matlabbatch{6}.spm.spatial.realign.estwrite.eoptions.rtm = 1;
matlabbatch{6}.spm.spatial.realign.estwrite.eoptions.interp = 2;
matlabbatch{6}.spm.spatial.realign.estwrite.eoptions.wrap = [0 0 0];
matlabbatch{6}.spm.spatial.realign.estwrite.eoptions.weight = '';
matlabbatch{6}.spm.spatial.realign.estwrite.roptions.which = [2 1];
matlabbatch{6}.spm.spatial.realign.estwrite.roptions.interp = 4;
matlabbatch{6}.spm.spatial.realign.estwrite.roptions.wrap = [0 0 0];
matlabbatch{6}.spm.spatial.realign.estwrite.roptions.mask = 1;
matlabbatch{6}.spm.spatial.realign.estwrite.roptions.prefix = 'r';
matlabbatch{7}.spm.spatial.coreg.estimate.ref(1) = cfg_dep('DICOM Import: Converted Images', substruct('.','val', '{}',{4}, '.','val', '{}',{1}, '.','val', '{}',{1}, '.','val', '{}',{1}), substruct('.','files'));
matlabbatch{7}.spm.spatial.coreg.estimate.source(1) = cfg_dep('Realign: Estimate & Reslice: Mean Image', substruct('.','val', '{}',{6}, '.','val', '{}',{1}, '.','val', '{}',{1}, '.','val', '{}',{1}), substruct('.','rmean'));
matlabbatch{7}.spm.spatial.coreg.estimate.other(1) = cfg_dep('Realign: Estimate & Reslice: Resliced Images (Sess 1)', substruct('.','val', '{}',{6}, '.','val', '{}',{1}, '.','val', '{}',{1}, '.','val', '{}',{1}), substruct('.','sess', '()',{1}, '.','rfiles'));
matlabbatch{7}.spm.spatial.coreg.estimate.other(2) = cfg_dep('Realign: Estimate & Reslice: Resliced Images (Sess 2)', substruct('.','val', '{}',{6}, '.','val', '{}',{1}, '.','val', '{}',{1}, '.','val', '{}',{1}), substruct('.','sess', '()',{2}, '.','rfiles'));
matlabbatch{7}.spm.spatial.coreg.estimate.other(3) = cfg_dep('Realign: Estimate & Reslice: Resliced Images (Sess 3)', substruct('.','val', '{}',{6}, '.','val', '{}',{1}, '.','val', '{}',{1}, '.','val', '{}',{1}), substruct('.','sess', '()',{3}, '.','rfiles'));
matlabbatch{7}.spm.spatial.coreg.estimate.eoptions.cost_fun = 'nmi';
matlabbatch{7}.spm.spatial.coreg.estimate.eoptions.sep = [4 2];
matlabbatch{7}.spm.spatial.coreg.estimate.eoptions.tol = [0.02 0.02 0.02 0.001 0.001 0.001 0.01 0.01 0.01 0.001 0.001 0.001];
matlabbatch{7}.spm.spatial.coreg.estimate.eoptions.fwhm = [7 7];
matlabbatch{8}.spm.tools.oldnorm.estwrite.subj.source(1) = cfg_dep('DICOM Import: Converted Images', substruct('.','val', '{}',{4}, '.','val', '{}',{1}, '.','val', '{}',{1}, '.','val', '{}',{1}), substruct('.','files'));
matlabbatch{8}.spm.tools.oldnorm.estwrite.subj.wtsrc = '';
matlabbatch{8}.spm.tools.oldnorm.estwrite.subj.resample(1) = cfg_dep('Coregister: Estimate: Coregistered Images', substruct('.','val', '{}',{7}, '.','val', '{}',{1}, '.','val', '{}',{1}, '.','val', '{}',{1}), substruct('.','cfiles'));
matlabbatch{8}.spm.tools.oldnorm.estwrite.eoptions.template = {'D:\software\neuroscience\Matlab2016b\toolbox\spm12\toolbox\OldNorm\T1.nii,1'};
matlabbatch{8}.spm.tools.oldnorm.estwrite.eoptions.weight = '';
matlabbatch{8}.spm.tools.oldnorm.estwrite.eoptions.smosrc = 8;
matlabbatch{8}.spm.tools.oldnorm.estwrite.eoptions.smoref = 0;
matlabbatch{8}.spm.tools.oldnorm.estwrite.eoptions.regtype = 'mni';
matlabbatch{8}.spm.tools.oldnorm.estwrite.eoptions.cutoff = 25;
matlabbatch{8}.spm.tools.oldnorm.estwrite.eoptions.nits = 16;
matlabbatch{8}.spm.tools.oldnorm.estwrite.eoptions.reg = 1;
matlabbatch{8}.spm.tools.oldnorm.estwrite.roptions.preserve = 0;
matlabbatch{8}.spm.tools.oldnorm.estwrite.roptions.bb = [-78 -112 -70
                                                         78 76 85];
matlabbatch{8}.spm.tools.oldnorm.estwrite.roptions.vox = [2 2 2];
matlabbatch{8}.spm.tools.oldnorm.estwrite.roptions.interp = 1;
matlabbatch{8}.spm.tools.oldnorm.estwrite.roptions.wrap = [0 0 0];
matlabbatch{8}.spm.tools.oldnorm.estwrite.roptions.prefix = 'w';
matlabbatch{9}.spm.spatial.smooth.data(1) = cfg_dep('Old Normalise: Estimate & Write: Normalised Images (Subj 1)', substruct('.','val', '{}',{8}, '.','val', '{}',{1}, '.','val', '{}',{1}, '.','val', '{}',{1}), substruct('()',{1}, '.','files'));
matlabbatch{9}.spm.spatial.smooth.fwhm = [8 8 8];
matlabbatch{9}.spm.spatial.smooth.dtype = 0;
matlabbatch{9}.spm.spatial.smooth.im = 0;
matlabbatch{9}.spm.spatial.smooth.prefix = 's';
注意事项:以上代码是基于我的文件结构,因为这批数据有三个session,所以有三个RUN文件夹。具体的用SPM12生成batch会在另一篇博文继续更新。
image.png
image.png
image.png
参考网址:

20180731