c++ - 这条 Matlab 线是什么意思?

标签 c++ matlab

Histogram(j, :) = Histogram(j, :)./sum(Histogram(j, :));

要移植到 C++,我知道 Histogram 是一个多维数组。这行中的“./”是什么意思?

http://www.mathworks.com/help/matlab/matlab_prog/symbol-reference.html#bsgigzp-23

最佳答案

./是用于逐元素除法的命令(.* 是乘法版本)。 MATLAB 默认是矩阵运算,所以你必须使用 ./命令告诉它按元素进行运算而不是矩阵运算(在大多数情况下,矩阵运算会失败,因为大多数时候人们想要的是元素-智慧之人)。

逐元素除法意味着将一个矩阵的第一个元素除以第二个元素的第一个元素,然后将第二个元素除以第二个元素,第三个元素除以第三个元素......直到所有都完成,返回一个相同大小的矩阵作为第一和第二。这不是矩阵运算,在矩阵运算中,您反转第二个矩阵并对两者进行矩阵乘法以返回第三个矩阵,该矩阵的大小可能与任何父矩阵相同,也可能不同。

在上面的例子中,假设 Histogram 是一个二维矩阵,element-wise 和 matrix 操作实际上是一样的,因为

sum(Histogram(j,:))

将返回单个标量值(第 j 行中元素的总和)。您引用的代码的作者可能只是默认执行了 ./命令,因为这是一种常见的 MATLAB 编程习惯。

关于c++ - 这条 Matlab 线是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26373575/

相关文章:

java.lang.OutOfMemoryError : Java heap space when using this short program to Remove title bar 错误

matlab - 获取 double 的整数部分和小数部分

c++ - Cmake:将 openscenegraph 链接到我的共享库

c++ - Emacs auto-complete-c-headers。符号作为变量的值是无效的

c++ - 模板类的类型定义?

matlab - 在 MATLAB 中找到矩阵中每一列的非零元素行中的最低位置

performance - 计算图像中已识别像素的局部均值和方差

artificial-intelligence - 使用 MATLAB 的神经网络

c++ - 没有调用 mouseMoveEvent

c++ - 决策搜索树中的 LINK 错误 2019 和 1120