在Matlab中将数据转换为定点二进制?
我不是一个普通的Matlab用户,所以如果这个问题太幼稚,我很抱歉。我正在从事一个硬件项目,希望使用定点工具箱将一些数据转换为定点二进制 我所有的数据本质上都是浮动的,在-1到+1之间。我试图在Matlab中将它们转换为定点,但没有成功 我得到了不同类型的错误,从“单元格内容分配到非单元格数组对象”到错误的二进制值。下面是我的代码在Matlab中将数据转换为定点二进制?,matlab,fixed-point,Matlab,Fixed Point,我不是一个普通的Matlab用户,所以如果这个问题太幼稚,我很抱歉。我正在从事一个硬件项目,希望使用定点工具箱将一些数据转换为定点二进制 我所有的数据本质上都是浮动的,在-1到+1之间。我试图在Matlab中将它们转换为定点,但没有成功 我得到了不同类型的错误,从“单元格内容分配到非单元格数组对象”到错误的二进制值。下面是我的代码 for i=1:count temp=datax(i); % datax is a array of decimal values between -1 an
for i=1:count
temp=datax(i); % datax is a array of decimal values between -1 and 1
fixeda{i}=bin(sfi(temp,16,15));
% Since all values are in the same range I set the word length to be 16 and fractional part to be 15
end
我不是matlab用户,但是-1和1之间的浮点的1.15表示形式不应该是
int(f*32768)
请注意,在此表示法中,只能表示小于1.0的数字。1.0正好导致溢出
查看帮助页面,您需要的应该是
fixeda=bin(sfi(datax,16,15))
。对不起,我不明白。你能再解释一下吗?是的!但由于它是一个数组,并且我想将所有二进制表示形式保存到另一个数组中,因此我得到了“将单元格内容分配给非单元格数组对象”错误。它没有超过第一个值。根据示例,sfi
和bin
都将使用数组参数并返回相同大小的数组。在尝试写入fixeda之前,您是否将其声明为某种东西?