我把 32 位被试的数据合并好了。每位被试评价 75 张 CMF 图片,包含 professional、refined、pleasure、vitality、healing、safety 六个词。
收到。我先核对数据结构:每行对应一位被试对一张图片的评分,图片由 5 个色相和不同的 L×C 组合构成。后续分析会保留
subject、image_id、hue、L 和 C 字段。已检查数据结构2,400 行 · 32 位被试 · 75 张图片 · 6 个评分变量
先做三因素 ANOVA,再画五个色相的 L/C 折线图。
三因素 ANOVA 已按色相、明度和彩度整理。色相与明度的主效应较明显,部分词存在交互效应。我也按五个色相分别生成了折线图,便于比较不同 L/C 组合。
ANOVA 汇总表75 张图已映射5 组折线图
不同被试的打分习惯差异有点大,下一步先标准化吧。
可以。为了保留每位被试内部的相对偏好,建议按被试分别对六个词做 Z-score,而不是把所有人的评分放在一起标准化。
今天 18:42
帮我写一下 MATLAB 里按被试做 Z-score 标准化的代码,6个词,75张图
好的,下面是按照每个被试(subject)对 6 个词分别做 Z-score 标准化的 MATLAB 代码。
MATLAB
clc;
clear;
% 1. 读取数据
[file,path] = uigetfile('*.xlsx');
data = readtable(fullfile(path,file));
% 2. 需要标准化的6个词
vars = {'professional','refined','pleasure','vitality','healing','safety'};
% 3. 按被试分组,对每个词做 zscore
subjects = unique(data.subject);
for i = 1:length(subjects)
idx = data.subject == subjects(i);
for j = 1:length(vars)
col = vars{j};
data.([col '_z'])(idx) = zscore(data.(col)(idx));
end
end
% 4. 保存结果
writetable(data, 'data_zscore.xlsx');
disp('Z-score 标准化完成,已保存为 data_zscore.xlsx');