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!