1.matlab中f=double(f)
matlab中f=double(f)
matlab默认的浮点b浮数据类型是double(位) 。
double是数源双精度浮点数,保留位有效数字 。点数
双精度到底是浮点b浮jar 反编译源码几位,与你的数源系统有关的,如果你的点数头像源码系统是位的,那么一般双精度是浮点b浮位,单精度就是数源位,这个规律不是点数万能的,总之与你的浮点b浮系统有关。
自己试验的数源结果:opencv和matlab中double类型的数,都只有位的点数准确位数。
遇到问题:
matlab往xml写入double型数组时,浮点b浮在源码用
dataElement.appendChild(docNode.createTextNode(sprintf('%f',数源mat_input(i,j))));
出现的问题是,<data>0. 0. 0. 0. 0. 0.等。点数这样,源码锁原本是double类型的数组就被截成了小数点后六位的精确度。显然数据损失了。 解决方法:
dataElement.appendChild(docNode.createTextNode(sprintf('%1.f',锁源码mat_input(i,j)))); 这样就解决了精度的问题了。
<data>0. 0. 0. 0. 0. 遗留问题:
之一:0. 在matlab中是4.e-
之二:'%1.f'是保证了“小数点前1位,小数点后位”的格式存储。问题是,如果不知道数据的位小数点前后分配情况,怎么保证格式?
遇到问题: matlab中,
dtElement.appendChild(docNode.createTextNode(sprintf('%s','d'))); 一定要注意存储数据的格式 d:double f:float
这样才能保证在opencv读取xml时的精度保证。
望采,谢谢