C++、MATLAB 两个数值相除,取结果的余数、整除数部分 MATLAB两整数相除结果为整型、浮点型

</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







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值