0

我对 Simulink 比较陌生,我正在寻找一种从一个字节中提取 1-3 个特定位的可能性。据我所知,常量的输入格式(bin、dec、hex)与以下内容无关!?但是我怎么能说常数“1234”是十六进制而不是十进制呢?

在我的模型中,我使用“常量块”作为源(将由来自 m 文件的 MATLAB 变量参数化)。使用“Extract Bits Block”进一步处理会导致不兼容的数据类型出错。

有人可以帮我处理这个问题吗?

问候,波斯克伦

4

3 回答 3

2

您可能应该在 .m 初始化文件中执行转换 hex->dec 并在 Simulink 中使用此值。

于 2011-01-26T10:43:57.730 回答
1

也许这不是最优雅的解决方案,但我将输入转换为十进制,然后通过 OR 和 AND 逻辑块创建它的 BCD 表示以供进一步使用。

于 2011-01-28T13:38:01.730 回答
0

如果您有 Communications Toolbox/Blockset,那么您可以使用Integer to Bit Converter块转换为二进制数字向量,然后只需提取您想要的“位”。位到整数转换器块将执行反向转换。

如果您没有 Communicatins Blockset,那么使用普通的 MATLAB Function 块来做类似的事情并不难。

在此处输入图像描述

于 2015-08-08T14:58:36.657 回答