开源(或其他)版本的Matlab工具箱

时间:2009-12-30 19:22:44

标签: open-source matlab

我在大学的课程中有一个需要各种Matlab功能的项目。我的Matlab版本由我的工作场所提供,它没有项目所需的一些工具箱。在任何地方都有这样的实现的存储库吗?我用Google搜索时找不到任何相关内容。

虽然我的问题很笼统,但我列出了我需要和找不到的功能,因为我的问题也是具体的:

  • knnclassify - K近邻的实现
  • svmclassify - 支持向量机的实现
  • svmtrain - SVM实施的一部分
  • mapstd - 将矩阵规范化为平均值为0且标准差为1

我正在考虑的另一种方法是使用Numpy和Pylab在Python中工作。 Pylab中的工具箱是否与这些Matlab函数等效?

3 个答案:

答案 0 :(得分:3)

您可能需要考虑获取自己的Matlab副本以及所需的工具箱。 Mathworks为大学生提供了非常的诱人定价。

GNU Octave是免费的Matlab,或多或少的工作。我不知道工具箱的覆盖范围有多好。

或者,如果作业需要它们,学校可能会在某些实验室机器上安装它们,你可能可以使用某种Xterm远程登录。问TA。

答案 1 :(得分:3)

我要检查的第一个地方是MathWorks File Exchange。 MATLAB用户提交的代码超过10,000个,您可以找到各种MATLAB工具箱的替代方案。这可能会有所帮助:

MAPSTD这样的简单函数的另一种选择是尝试自己实现它的精简版本。下面是一些复制MAPSTD基本行为的示例代码:

M = magic(5);               %# Create an example matrix
rowMeans = mean(M,2);       %# Compute the row means
rowStds = std(M,0,2);       %# Compute the row standard deviations
rowStds(rowStds == 0) = 1;  %# Set standard deviations of 0 to 1
for i = 1:size(M,1)
  M(i,:) = (M(i,:)-rowMeans(i))./rowStds(i);  %# Normalize each row of M
end
%# Or you could avoid the for loop with a vectorized solution...
M = bsxfun(@rdivide,bsxfun(@minus,M,rowMeans),rowStds);

这显然不会涵盖MAPSTD中的所有选项,但会捕获基本功能。我可以确认上面的代码与mapstd(M)给出了相同的结果。

答案 2 :(得分:2)

您还可以查看R,它在许多数据驱动字段中非常强大,包括Machine Learning

另外值得注意的是开源机器学习软件的MLOSS目录。