【发布时间】:2014-09-23 02:16:14
【问题描述】:
我有几个文件夹,其中包含包含刺激的子文件夹,并且想要生成这些刺激的随机列表。根据刺激优先级,子文件夹称为“1”、“2”、“3”。此外,最终列表应该包含来自每个文件夹的一定百分比的刺激。
示例: 40% 来自“鲜花”, 20% 来自“仙人掌”, 10% 来自“树木”, 30% 来自“水果”。
Fruit 包含诸如“Berries”、“Citrus”、“Stone Fruit”之类的子文件夹,它们的概率相等。
所有文件夹都包含这些子文件夹 1、2、3。首先,应使用来自 1 的刺激。每个刺激应该只呈现一次。只有当 1 中没有更多刺激时,才能添加来自 2 的刺激,依此类推。 概率分布仅在开始时很重要。如果一个文件夹用完了刺激,那很好。 如何实现文件夹的概率/权重和子文件夹的优先级?
这里是我的文件夹结构示例:
Stimuli/Flowers/1
Stimuli/Flowers/2
Stimuli/Flowers/3
Stimuli/Trees/1
Stimuli/Trees/2
Stimuli/Trees/3
Stimuli/Fruit/Berries/1
Stimuli/Fruit/Berries/2
Stimuli/Fruit/Berries/3
Stimuli/Fruit/Citrus/1
Stimuli/Fruit/Citrus/2
Stimuli/Fruit/Citrus/3
每个文件夹都包含文件作为刺激。
我的想法,到目前为止非常基本:
%get all files in a folder
sfolder='Stimuli/Berries/1';
stim=dir(fullfile(sfolder,[*.png]));
stim={stim(:).name};
stim=stim(randperm(size(stim,2))); %randomization.
我刚试过这个,它给了我文件夹的概率:
fs=dir('Stimuli');
fs={fs(:).name};
fs=fs(3:8);
weightvec=[0.2,0.4,0.3,0.1];
nofsamp=50;
chos=randsample(fs,nofsamp,1,weightvec);
【问题讨论】:
-
1) 您能否给出一个简洁但完整的文件夹结构示例?是“刺激”文件吗? 2)子文件夹的优先级是做什么的?我很难意识到这一点。
-
1) 我添加了一个文件夹结构示例。是的,刺激是文件。 2)首先,使用优先级最高的文件夹(1)中的文件,只有当没有文件时,才使用下一个文件夹中的文件。
-
我会尝试定义一个类对象来完成这项工作。
标签: matlab random probability directory weighted