Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays MATLAB中是否有内置函数来获取bsxfun(@rdivide,abs(X),sum(abs(X))?_Arrays_Matlab_Matrix - Fatal编程技术网

Arrays MATLAB中是否有内置函数来获取bsxfun(@rdivide,abs(X),sum(abs(X))?

Arrays MATLAB中是否有内置函数来获取bsxfun(@rdivide,abs(X),sum(abs(X))?,arrays,matlab,matrix,Arrays,Matlab,Matrix,这是一个专栏。比如说, X= 1 -1 -2 1 4 -8 bsxfun(@rdivide,abs(X),sum(abs(X))将获得 ans = 0.5 0.2 0.2 0.5 0.8 0.8 没有内置函数来缩短代码,就像已经注释过的那样。但是,由于MATLAB R2016b,在其他数字语言/软件包中也有广播。这意味着您的代码可以缩短为abs(X)。/sum(abs(X)) 为了明确起见,bsxfun的使用更好,尽管对于那些不懂MATLAB的人来说可能更难理解。隐

这是一个专栏。比如说,

X=  1 -1 -2
    1  4 -8
bsxfun(@rdivide,abs(X),sum(abs(X))
将获得

ans = 0.5 0.2 0.2 
      0.5 0.8 0.8

没有内置函数来缩短代码,就像已经注释过的那样。但是,由于MATLAB R2016b,在其他数字语言/软件包中也有广播。这意味着您的代码可以缩短为
abs(X)。/sum(abs(X))


为了明确起见,
bsxfun
的使用更好,尽管对于那些不懂MATLAB的人来说可能更难理解。隐式扩展是……隐式的,但这可能会导致错误行为,您(或您的代码的读者)会假定不同的结果或错误。

没有。你写的有什么不对?我们不能把广播作为一个术语吗?Octave,NumPy,Eigen和其他人已经使用它很长时间了。我们可以,但我不使用Octave,NumPy,Eigen和其他人,所以我不知道他们也支持这个,它被称为广播,所以我没有使用这个词。另外,这个问题是关于MATLAB的。我将编辑我的答案以添加术语。此外,“隐式扩展”是MathWorks用于广播的名称。为了明确起见,bsxfun的使用更好…好吧,你发布的MathWorks链接说,与使用bsxfun相比,隐式扩展提供更快的速度、更好的内存使用和更高的代码可读性,那么我们该争论谁呢?我们要争论,因为我们是最终用户。再说,他们是谁来逼我们的?毕竟,它们提供了
bsxfun
和隐式扩展。当然,在这种情况下,有很多理由支持隐式扩展,但如果我们对速度、内存使用和代码可读性不感兴趣,我们可以支持
bsxfun
!;)