-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFirstWordAttemptSample.m
More file actions
62 lines (60 loc) · 3.11 KB
/
FirstWordAttemptSample.m
File metadata and controls
62 lines (60 loc) · 3.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Core Model, 2022
% Written by Maya Davis
% Concept by Maya Davis and Melissa A. Redford
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [VocabularySequences, GoalSequences, AllSelectedSequences, ...
VocabularySizes, AllDistanceVectors, DistanceVectorsAveraged, ...
AllAverageDistances, AverageDistancesAveraged] = ...
FirstWordAttemptSample(space, ConsonantMins, ConsonantMaxes, ...
VowelMins, VowelMaxes, CVPattern, VocabularySizes, ...
NumNeighbors, NumTrials)
% EX | NumNeighbors = 4
% EX | VocabularySizes = [5 8]
% EX | NumTrials = 3
% EX | Assume that the motor silhouettes are 7 time steps long
TimeLength = 7;
AllDistanceVectors = nan(TimeLength, NumTrials, length(VocabularySizes));
% EX | AllDistanceVectors = nan(7, 3, 2)
AllAverageDistances = nan(NumTrials, length(VocabularySizes));
% EX | AllAverageDistances = nan(3, 2)
DistanceVectorsAveraged = nan(TimeLength, length(VocabularySizes));
% EX | DistanceVectorsAveraged = nan(7, 2)
AverageDistancesAveraged = nan(1, length(VocabularySizes));
% EX | AverageDistancesAveraged = nan(1, 2)
VocabularySequences = cell(NumTrials, length(VocabularySizes));
AllSelectedSequences = cell(NumTrials, length(VocabularySizes));
GoalSequences = cell(NumTrials, length(VocabularySizes));
for s = 1:length(VocabularySizes)
vSize = VocabularySizes(s);
for n = 1:NumTrials
[AllSequences, GoalSequence, SelectedSequences, ~, ~, ...
DistanceVector, AverageDistance] = ...
FirstWordAttemptRandomVocabulary(space, ConsonantMins, ...
ConsonantMaxes, VowelMins, VowelMaxes, CVPattern, ...
SilhouetterRadius, vSize, NumNeighbors);
VocabularySequences{n, s} = AllSequences;
AllSelectedSequences{n, s} = SelectedSequences;
GoalSequences{n, s} = GoalSequence;
AllDistanceVectors(:, n, s) = DistanceVector;
AllAverageDistances(n, s) = AverageDistance;
fprintf("Done with vocabulary #%d, trial %d\n", [s n]);
end
DistanceVectorsAveraged(:, s) = mean(AllDistanceVectors(:, :, s), 2);
AverageDistancesAveraged(s) = mean(AllAverageDistances(:, s));
end
end
function [AllSequences, GoalSequence, SelectedSequences, ASilhouette, ...
ResultingJunctures, DistanceVector, AverageDistance] = ...
FirstWordAttemptRandomVocabulary(space, ...
ConsonantMins, ConsonantMaxes, VowelMins, VowelMaxes, ...
CVPattern, SilhouetterRadius, VocabularySize, NumNeighbors)
[space, AllSequences, MotorSilhouetteList, ExemplarList, ...
GoalExemplar, GoalSequence] = Make2DCVWords(space, ...
ConsonantMins, ConsonantMaxes, VowelMins, VowelMaxes, ...
CVPattern, SilhouetterRadius, VocabularySize);
[SelectedSequences, GoalSequence, ASilhouette, ResultingJunctures, ...
DistanceVector, AverageDistance] = FirstWordAttempt(space, ...
AllSequences, MotorSilhouetteList, ExemplarList, GoalExemplar, ...
GoalSequence, NumNeighbors);
end