这个Matlab系列是什么意思?

时间:2014-10-15 02:35:53

标签: c++ matlab

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

要进入C ++,我理解直方图将是一个多维数组。什么" ./"在这一行意味着什么?

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

1 个答案:

答案 0 :(得分:1)

./是元素分割的命令(。*是乘法版本)。 MATLAB的默认设置是矩阵运算,因此你必须使用./命令告诉它按行进行操作而不是矩阵运算(在大多数情况下,这会失败,因为大多数时候人们都会想要这个元素-智慧之人)。

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

在上面的例子中,假设直方图是一个二维矩阵,那么元素和矩阵运算实际上是相同的,因为

sum(Histogram(j,:))

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