尝试将 SCRIPT tsne 作为函数执行: C:\Users\Mr.X\Desktop\tsne.m
时间: 2023-09-06 10:09:20 浏览: 84
好的,首先将 tsne.m 文件的内容复制到一个新的 MATLAB 脚本文件中,然后在 script 文件夹中创建一个新的函数文件,比如说叫做 my_tsne.m。在 my_tsne.m 文件中,你可以将 tsne.m 中的代码直接复制进去,并将其包装在一个函数中。以下是一个示例:
```matlab
function Y = my_tsne(X, no_dims, initial_dims, perplexity)
% MY_TSNE Runs the t-SNE algorithm on matrix X
% Y = MY_TSNE(X, no_dims, initial_dims, perplexity) returns the
% low-dimensional representation of X using the t-SNE algorithm.
% Add path to the folder where the bh_tsne binary is located
addpath('path/to/bh_tsne');
% Run the binary using the provided parameters
command = sprintf('./bh_tsne -d %d -i %d -p %d -v 2', no_dims, initial_dims, perplexity);
[~, ~] = system(command);
% Load the resulting Y data from the generated file
Y = load('result.dat');
end
```
在这个函数中,我们将 tsne.m 中的代码复制到了函数中,并且添加了一些额外的功能,如添加 bh_tsne 的路径,运行 bh_tsne 程序,读取结果文件等。现在你可以在 MATLAB 中调用这个函数,比如说:
```matlab
X = randn(100, 50); % generate some random data
Y = my_tsne(X, 2, 30, 20); % run t-SNE with parameters
scatter(Y(:,1), Y(:,2)); % plot the results
```
这个示例中,我们生成了一个大小为 100x50 的随机数据矩阵 X,然后使用 my_tsne 函数将其降维到 2 维,并且使用 perplexity 参数为 20 运行 t-SNE 算法。最后,我们使用 scatter 函数将结果绘制成散点图。
阅读全文