Уже поздно, поэтому я уверен, что есть лучшее решение. Во всяком случае, это похоже на это:
A = rand(1, 1) * 10000
nBits = 5
curBits = ceil(log2(A))
toShift = curBits - nBits
wantedMSB = fix(A / 2^toShift) % This is still a double, feel free to cast.
dec2bin(wantedMSB) % Result in bitstring form.
Или как один лайнер:
A = rand(1, 1) * 10000
nBits = 5
wantedMSB = fix(A / 2^(ceil(log2(A)) - nBits))
[Редактировать] Кстати, функция getmsb
является частью набора инструментов с фиксированной точкой, который может быть недоступен при каждой установке MATLAB.