How to convert logical vector to a number?
22 次查看(过去 30 天)
显示 更早的评论
Say I have a logical vector:
logicVector = logical([1 0 0 0 1 0 0 0]);
How do one convert it to a number?
From the code above the conversion would give 136 assuming it is unsigned and MSB first. Preferably the type would be fixed point. Best would be a function similar to matlabs 'fi'.
address = logicVec2fi(logicVector, false, true, 0); % logicVec2fi(input, signed, MSB, fraction length)
This will be used in simulink for a binary search where I get a boolean from each search-step which forms the index/address of a ram from the HDL Coder toolbox
0 个评论
采纳的回答
更多回答(1 个)
DGM
2022-4-4
Well here's one way.
logicVector = logical([1 0 0 0 1 0 0 0]);
sum(2.^(numel(logicVector)-find(logicVector)))
I have no idea if that's the most appropriate for your application. I have no familiarity with using fi or Coder, so I'm just going to stop there.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 HDL Coder 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!