优职学长官网

报名 搜索 成绩查询考研真题考研大纲 免费资料

你当前的位置:首页 > 新闻资讯 > 心理学

函数用法简介

  • 时间:2019-01-30 09:36:39
  • 来源:
  • 点击数:0

第七章:Matlab函数用法简介——留住瞬间的永恒

有请我们的Avril Lavigne为大家送出一曲《Alice》

Avril Lavigne - Alice (Alice In Wonderland Soundtrack)

Trippin out Spinning around
I'm underground I fell down
Yeah I fell down
I'm freaking out, where am I now?
Upside down and I can't stop it now
Can't stop me now, oh oh
I,I, I'll get by
I,I, I'll survive
When the world's crashing down
When I fall and hit the ground
I will turn myself around
Don't you try to stop me
I,I, I won't cry

I'll play the game
but I can't stay
I've Got my head on straight
And I'm not gonna change
I'm not gonna change

I'll win the race
Keep up with the pace
today is the day
that I start to pray
You can't get it my way

I,I, I'll get by
I,I, I'll survive
When the world's crashing down
When I fall and hit the ground
I will turn myself around
Don't you try to stop me
I,I, I won't cry

I found myself in Wonderland
Got back on my feet, again
Is this real? Is this pretend?
I'll take a stand until the end

I,I, I'll get by
I,I, I'll survive
When the world's crashing down
When I fall and hit the ground
I will turn myself around
Don't you try to stop me
I,I, and I won't cry

这里主要讲我们在设计与分析心理学相关实验时需要使用的函数;另外,函数的用法里面,我们也只讲心理学中经常使用得到的,没讲到的语法,大家可以自己help function。

 

 

mean

功能:求数组的平均数。(例如我们在求组平均反应时的时候就可以用到这个函数)

语法:M = mean(A) / M = mean(A, dim)这个表达式可以返回数组的均值当A是一个向量时,比如说有三个反应时(ms)501, 545, 498,我们只需要这样写mean(A),即可返回这三个反应时的均值。

当A是一个矩阵时,比如说我们将反应时、正确率放在一起。这时我们需要注意,直接写mean(A)返回的是列的均值,这里有两种写法,一种是mean(A,1),直接写mean(A)其实写的就是mean(A,1);另一种写法是mean(A,2),返回的是行的均值。也就是说dim值1和2分别代表了列和行,dim值默认为1。比如,

这里返回的是列的均值,如(501+1)/2;

这样写之后则返回的是行的均值所以我们在计算相关的数据时,需要注意你是如何整合数据的,选取相应的表达式求均值。


max/min

功能:求数组中的最大值/最小值(例如我们找反应时的极值)

语法:C = max(A) / [C,I] = max(...) / C = min(A) / [C,I] = min(...)(下面以求max值为例,min语法相同)

当A是一个向量时,如我们的一组反应时(ms),501 457 475 545 985 843 498 435 389,我们可以找到其中的最大值

当A为一个矩阵时,比如说我们将不同刺激类型的反应时罗列在一个矩阵中,这是用表达式C = max(A),函数将把矩阵的第一列当做一个向量;

另外介绍的一个是[C,I] = max(...),这里返回的是最值在数组中的indices,如果有几个相等的最值存在,则返回的值是第一个最值的位置,在编程中可能会用到。例如

这里用的A是一个矩阵,结果中,返回了每一列的最值,及其在这列向量中的位置。 
std/var

功能:求标准差/方差

语法:s = std(X), s = std(X, flag,dim) /s = var(X)

(只讲std的用法,var道理相同)

当X为向量时,s = std(X)返回该向量的标准差,如一组反应时的标准差

length

功能:获取向量长度。在数据分析中,我们可能需要知道共有多少个数据;另外在编写程序时,也会经常使用到length函数。

语法:numberOfElements = length(array)例如,我们可以通过一组反应时来获取共有多少个数据。

size

功能:返回数组维数

语法:d = size(X),[m,n] = size(X)例如数组X为1*9的矩阵;[m,n] = size(X)返回维数分别到m, n变量中去。

 

 

rand(n)

功能:返回一个n*n的矩阵,从分布为标准正态分布的(0,1)内取值,伪随机。

语法:r = rand(n),rand(m,n)/rand([m,n]),rand(size(A))

Rand(m,n)

返回m*n的矩阵,如rand(2,1);Rand(size(A))是一个嵌套函数,嵌套函数在编程时经常使用,运算时,从最内的一个括号开始算起,这里就是先返回size(A)的值,即3, 3;然后进行的运算就是rand(3,3),返回一个3*3的随机数矩阵。

randn

功能:返回n*n的矩阵,数值服从标准正态分布,(-1,1)

语法:r = randn(n),randn(m,n)/randn([m,n]),randn(size(A))使用方法和rand类似。


randperm(n)

功能:返回1到n的随机整数,不重复。有时我们需要随机安排刺激出现顺序,可以使用这个函数。

语法:randperm(n)
 

randi

功能:返回非正态分布的随机整数

语法:randi(imax),r = randi(imax,n),randi(imax,m,n)重点说R = RANDI(IMAX,N) ,其余两个表达式类似。这个表达式返回的是N*N的矩阵,这个矩阵的取值是来自1:IMAX范围(离散均匀分布)的伪随机整数

Randi(12,3)返回的就是一个3*3的矩阵,矩阵中的数字取值在1:12这个范围,可重复。


 

randint

功能:返回0,1值,这在编程中会用到。

语法:out = randint ,out = randint(m),out = randint(m,n)out = randint返回0或者1,等概率;out = randint(m),返回m*m的0,1矩阵,矩阵中每个位置取0的概率都是0.5。out =randint(m,n)道理类似。
 

ones

功能:返回全是1 的数组

语法:Y = ones(n),Y = ones(m,n)

>> ones(3)

ans =

1 1 1

1 1 1

1 1 1

 

 



zeros

功能:返回全是0的数组

语法:B = zeros(n),B = zeros(m,n)

>> zeros(3)

ans =

0 0 0

0 0 0

0 0 0



 

sort

功能:排序。例如,需要升序或者降序排列数据。

语法:B = sort(A),B = sort(A,dim),B = sort(...,mode)

当A是一个向量,则B = sort(A)返回的是将向量A按升序排列的结果

当A是一个矩阵,返回列的升序排序

B = sort(A,dim),按列或者行升序排序,语法为sort(A,1) 和 sort(A,2)
默认升序排列,如果要降序排列,则使用descend
下面这个函数是比较重要的一个函数,在写数据处理程序时经常用到。


 

find

功能:find函数在数据处理和程序编写中使用较多,是比较重要的函数。它的功能是给定数组中返回要求的数的指针。

语法:find(X)

X是向量或者矩阵时,使用find(X)来返回非零数的指针,例如下例中,从向量X中返回了非零的5个数字的位置指针,分别是在第1,3,4,8,9位置。

Find()括号内还可以是逻辑判断,通常我们用得比较多的就是逻辑判断了,比如说,我们需要从向量X中返回值大于0的数的位置。在心理学中,我们需要从得出的反应时结果中,找到指定类型的刺激的反应时的时候,就需要用到find函数。

如果这个时候在命令窗口中输入

>> C = find(A>=3)

C =

3

5

6

7

 

也可以在这个find外放置一个 A,就变成了

>> D = A(find(A>=3))

D =

9

3

4

3

 

function

在Matlab的世界里边,function就是函数的意思。函数(function)就是用来实现某种功能(function)。大学也可以解读成一个函数,我们给它起个名字叫做 universityFunction()。这个函数有输入参数。

这个函数最开始的输入参数应该就是你了。你来了,你代表的是全国各地培养的最好的基因。对,就是你,你被选中了,你就是这个函数的第一个也是最核心的输入参数。Parameter 1

这时候,函数的形态可以简单写成:universityFunction(studentName)

这个函数有可能它不只有一种功能,这些功能的调用就需要借助另外一个参数:‘本科’,‘硕士研究生’,或者'博士研究生'。


Then,函数的形态可以写成:universityFunction(studentName, stringStage)

函数会有输入,也会有返回参数。

大学这个函数的'本科'阶段的输出参数大概有3个:
考研,出国,找工作。

 

这时候,本科阶段的函数的形态就可以写成: byOutput = universityFunction(studentName, '本科')

byOutput是毕业出路,会有四个选项,分别是 1 '读研究生' 2 ‘出国留学’ 3 '直接工作' 4 ‘各种未遂’ 
byOutput可以返回的是数值,比如 1 2 3 4,也可以返回的是字符串 '读研究生' ‘出国留学’ '直接工作' ‘各种未遂’ 。

 

不管哪种形式,都是要签卖身契的,表面风光,其实各种眼泪溢出,那是因为活着大家都挺不容易的。从一开始,几乎所有的人都期待圆满的人生,却不知道人生注定有诸多坎坷,诸多不幸,各种不容易。

 

很多人不开心,不幸福,就是因为从一开始就犯了这么一个错误,总认为人生本来就应该是幸福的,有一本书叫做《少有人走的路》,里边就提到不要预期人生是幸福美满的,要想要幸福美满的人生是非常非常难的。这种客观的态度,可以降低人对幸福的预期,反而在体验到幸福时会格外的愉悦!

 

上一篇:流程控制
下一篇:返回列表

推荐课程