我在MATLAB中有一张33000 x 1975的桌子,显然在进行任何进一步分析之前,都需要降低尺寸。特征是1975列,行是数据的实例。我尝试在MATLAB表上使用tsne()函数,但似乎tsne()仅适用于数字数组。问题是有一种方法可以在我的MATLAB表上应用tsne。该表包含数字和字符串数据类型,因此在我的情况下,table2array()无法将表转换为数字数组。
此外,从MATHWORKS文档(以应用于fisheriris数据集为例)看来,tsne()将要素列作为函数参数。因此,我需要将预测变量与共振变量分开,这不成问题。但是,最初,关于如何进一步使用tsne似乎有些困惑。在这方面的任何建议将不胜感激。
最佳答案
您可能可以使用table
indexing using {}
获取所需的数据。这是根据tsne
reference page改编而成的简单示例:
load fisheriris
% Make a table where the first variable is the species name,
% and the other variables are the measurements
data = table(species, meas(:,1), meas(:,2), meas(:,3), meas(:,4))
% Use {} indexing on 'data' to extract a numeric matrix, then
% call 'tsne' on that
Y = tsne(data{:, 2:end});
% plot as per example.
gscatter(Y(:,1),Y(:,2),data.species)
关于matlab - 如何将tsne()应用于MATLAB表格数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53485342/