Download data: Matrix structure¶
The matrix structure packs the relevant measurements from an experiment in a series of one-, two-, or three-dimensional arrays. This format is ideal for numerical analysis and visualization.
When to use matrix structure¶
Matrix structure is ideal when you need:
- Numerical arrays — Ready for matrix operations in MATLAB, Python, or R
- Multi-dimensional data — Organize data by task, participant, and stimulus
- Efficient storage — Compact binary format for large datasets
For hierarchical data with metadata, use Tree structure. For tabular data, use Table or Annotations.
Compatible file types¶
Matrix structure data is currently available in the MAT file type.
Dimensions¶
One dimension¶
In this case, the variables are vectors. Their content and length depends on the type of task (see below). If data for multiple participants or tasks was selected, these are in separate vectors, with the stimulus and/or task name in the name of the vector (e.g., confidence_JohnSmith). An array with stimulus names is provided as stimuli.
Two dimensions¶
The first dimension corresponds to the participations, the second to the stimuli. An additional array with participation IDs is provided as participation_ids.
Three dimensions¶
The first dimension corresponds to the tasks, the second to the participations, the third to the stimuli. An additional array with task names is provided (e.g., dragrate_tasks).
Availability by task type and dimensions¶
| 1D | 2D | 3D | |
|---|---|---|---|
| Drag & Rate | ✓ | ✓ | ✓ |
| Multiple Arrangement | ✓ | ✗ | ✗ |
Tasks¶
These are the matrix variables contained by task type:
Drag & Rate¶
- property — Where the stimuli were placed on the y-axis. Values between 0 (bottom) and 1 (top).
- confidence — Where the stimuli were placed on the x-axis. Values between 0 (left) and 1 (right).
Multiple Arrangement¶
- rdmutv — The upper triangular vector of pairwise dissimilarities using Euclidean distance.
Loading matrix data¶
from scipy.io import loadmat
import numpy as np
# Load the MAT file
data = loadmat('Meadows_MyStudy_3D.mat')
# Access the arrays
property_data = data['property']
confidence_data = data['confidence']
stimuli = data['stimuli']
# Check dimensions
print(f"Property shape: {property_data.shape}")
print(f"Confidence shape: {confidence_data.shape}")
Example¶
The three-dimensional matrix structure displayed in an Octave terminal. This experiment has 6 participants, 35 Drag & Rate tasks, and 345 stimuli:
>> load "Meadows_MyStudy_3D.mat"
>> whos
Variables in the current scope:
Attr Name Size Bytes Class
==== ==== ==== ===== =====
confidence 35x6x345 579600 double
dragrate_tasks 35x41 1435 char
participation_ids 6x24 144 char
property 35x6x345 579600 double
stimuli 345x27 9315 char
Total is 155794 elements using 1170094 bytes
>> dragrate_tasks
dragrate_tasks =
task1
task2
...