</pre><p></p><pre code_snippet_id="1932623" snippet_file_name="blog_20161019_2_405111" name="code" class="cpp"> int bb = 10;
int cc = aa% bb;
int dd = aa / bb ;
cout << cc << endl << dd <<endl;
cout << "cnt: " << cnt << endl;
输出结果:
3
23
%: 取余数
/ : 相除取整除数部分
(与MATLAB代码的区别)
double aa = 24.4;
double bb = 3.2;
double cc = aa/bb;
cout << "aa bb cc: " << aa <<" "<< bb <<" "<< cc <<endl;
double a = 24.4;
int b = 3;
double c = a / b;
cout << "a b c: " << a << " " << b << " " << c << endl;
MATLAB:
%计算出RGB三信道的增益%
Rgain = Ymax / Rav
Ggain = Ymax / Gav
Bgain = Ymax / Bav
Ymax = 235
Rav = 133.4989
Gav = 123.8576
Bav = 149.9403
奇了怪了, 需要用增益系数,却输出结果为整数 2
在命令行进行 命令计算 明明可以输出浮点 结果
/ rdivide matlab 帮助文档解释:
Integer Division
Divide an int16
scalar value by each element of an int16
vector.
a = int16(10); b = int16([3 4 6]); x = a./b
x = 3 3 2
MATLAB® rounds the results when dividing integer data types. 对于整数,对结果进行四舍五入处理
% 两整数相除,将分母转换为double类型 ,则输出结果为 double型,
sumR = sum(sum(R))
Rav = double(sumR)/cnddt
输出结果:
Rav = 133.4989