我已经在MATLAB中使用TSNE来减少大数据的维数。我已经能够生成二维TSNE散布图,该散布图为每个标签以不同的颜色显示集群的标签,但是我无法在3D中做到这一点。关于https://uk.mathworks.com/help/stats/tsne.html,我使用以下语法: 其中,merged_data_all是21392x1974的表,最后一个名为FunctionalGroup的列包含不同的标签(类似于tsne上MathWorks示例中的Fisheriris种类标签)。 Y2是我成功生成的尺寸为21392 x 3 double的3维变量。
figure
v = double(categorical(merged_data_all.FunctionalGroup));
c = full(sparse(1:numel(v),v,ones(size(v)),numel(v),3));
scatter3(Y2(:,1),Y2(:,2),Y2(:,3),15,c,'filled')
title('3-D Embedding')
view(-50,8)
使用此代码时,出现错误"Error using sparse- Index exceeds array bounds".
,我什至尝试使用代码的修改版本并执行类似的操作
scatter3(Y(:,1), Y(:,2),Y(:,3),merged_data_all.FunctionalGroup)
在这种情况下,我收到错误"Error using scatter3- Input arguments must be numeric, datetime or categorical".
,我对如何绘制具有14种不同颜色的3d散点图感到困惑不解(对于我在FunctionalGroup列中具有的14种不同标签类型(merged_data_all)。在这方面的任何帮助将不胜感激。谢谢