matlab - MATLAB 中是否有修正线性函数 max(0,x) 的优化矢量化函数?

标签 matlab machine-learning

我试图获得线性整流器的矢量优化版本。即 y = max(0,x)。那么它应该计算它的元素最大值 0 和 x_i 。我显然实现了:

function [ y ] = rectSig( x )
%rectSig computes vector-wise rectified linear function
%  computes y = [..., max(0,x_i), ...]
n=length(x);
y = zeros(1,n);
for i=1:1:length(x);
    y(i) = max(0,x(i));
end
end

但是,我知道在 MATLAB 中这样循环是不明智的。所以我想知道是否有更好的方法来做到这一点,或者显然 matlab 是否有自己的此类函数的矢量化版本的实现?如果可以的话,如果有一种方法可以对我的代码进行矢量化,我总是尽量避免循环。它通常会加快速度。

顺便说一句,我显然尝试过谷歌搜索,但并没有真正得到我预期的结果......

最佳答案

解决方案很简单

y = max(x,0);

这适用于 x 作为列、行向量、矩阵、高维矩阵等。另一方面

y = max(zeros(1,length(x)),x);

仅适用于 x 为行向量的情况。当 x 是列向量或矩阵时,它会失败。

关于matlab - MATLAB 中是否有修正线性函数 max(0,x) 的优化矢量化函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31414607/

相关文章:

r - 使用 F1 分数代替准确度来优化 SVM 参数

python - 默认 Adam 优化器在 tf.keras 中不起作用,但字符串 `adam` 可以

Matlab符号

scala - Spark scala获取不常见的 map 元素

matlab - 如何在 matlab 中创建一个空的数组数组?

arrays - 散点图 : tall arrays eating up all the memory

python - 在单个特征数据框中查找质心和点之间的距离 - KMeans

python - scikit学习: random forest classifier giving ValueError

algorithm - Elevation算法的MATLAB实现

c++ - GCC C/C++ MEX Matlab R2015 Mac OS X(带 OpenMP)无法工作