我正在嘗試顯示向量的 n 個連續數字的某個值(在本例中為向量 x)。
x = [1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0];
例如,我可能想要 4 個連續數字的前 3 個值,這將是(每個 4 位的 3 個值):
1111
1100
0011
我可能想要 2 個連續數字的前 4 個值,這將是(每個 2 位的 4 個值):
11
11
11
00
x是一個雙陣列。實作這一目標的簡單方法是什么?
uj5u.com熱心網友回復:
x最簡單的方法是將您想要的每個值的位數作為行數重塑為矩陣(MATLAB 是列優先的)。例如,要獲取 4 位值:
t = reshape(x,4,[]);
這僅在長度均x分為 4 時才有效。您可以首先裁剪x到正確數量的元素以避免長度不能均分的錯誤:
t = reshape(x(1:4*3),4,[]);
現在轉置矩陣t,轉換為字串,看起來像你想要的輸出:
c = char(t.' '0');
輸出是一個 3x4 字符陣列:
'1111'
'1100'
'0011'
您可以使用以下命令將這些二進制表示轉換回數字bin2dec:
b = bin2dec(c);
輸出是一個 3 元素雙精度向量:
15
12
3
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/456635.html
下一篇:MatLab三角線性方程組
