我在MATLAB中有一个33000 x 1975的表格,显然在进行进一步分析之前需要进行降维处理。表格的1975列是特征, 행是数据的实例。我尝试在MATLAB表格上使用tsne()函数,但似乎tsne()只能用于数值数组。问题在于是否有办法将tsne应用于我的MATLAB表格。这个表格包含数值和字符串两种数据类型,所以table2array()在我的情况下无法将表格转换为数值数组。此外,从MATHWORKS文档中可以看出,以fisheriris数据集为例,tsne()函数接受特征列作为函数参数。因此,我需要将预测变量和响应变量分开,这应该不是问题。但最初,对于如何进一步使用tsne似乎有些困惑。任何这方面的建议将不胜感激。
回答:
你可以使用table
索引,使用{}
来提取你需要的数据。这里有一个简单的例子,改编自tsne
参考页面:
load fisheriris% 创建一个表格,第一个变量是物种名称,% 其他变量是测量值data = table(species, meas(:,1), meas(:,2), meas(:,3), meas(:,4))% 对'data'使用{}索引提取一个数值矩阵,然后% 调用'tsne'Y = tsne(data{:, 2:end});% 按照示例进行绘图gscatter(Y(:,1),Y(:,2),data.species)