我对Simulink相对较新,我正在寻找从一个字节中提取1-3个特定位的可能性。 据我所知,常量的输入格式(bin,dec,hex)与以下内容无关!但是我怎么能说常量“1234”是十六进制而不是十进制?
在我的模型中,我使用“常量块”作为我的源(将通过来自m文件的MATLAB变量进行参数化)。 使用“Extract Bits Block”进行进一步处理会导致不兼容的数据类型出错。
有人可以帮我处理这个问题吗?
Greets,poeschlorn
答案 0 :(得分:2)
您可能应该在.m初始化文件中执行hex-> dec转换,并在Simulink中使用此值。
答案 1 :(得分:1)
也许这不是最优雅的解决方案,但我将输入转换为十进制,然后通过OR和AND逻辑块创建了它的BCD表示以供进一步使用。
答案 2 :(得分:0)
如果你有通讯工具箱/阻止组,那么你可以使用Integer to Bit Converter块转换为二进制数字向量,然后只提取你想要的“位”。 Bit to Integer Converter块将执行反向转换。
如果您没有Communicatins Blockset,那么使用普通的MATLAB功能块对此进行类似的操作并不困难。